Envío de mensajes
El envío de mensajes que provoca la llamada a métodos en Java es un concepto central en la programación orientada a objetos. Este mecanismo es fundamental para la interacción entre objetos y para la implementación de comportamientos.
El envío de mensajes consiste en llamar a un método de un objeto, lo que significa que se le está pidiendo al objeto que realice una acción o que devuelva información.
En este ejemplo, la clase Coche enviará un mensaje al objeto Motor para que realice acciones como encenderse o apagarse. Este ejemplo ilustrará cómo los objetos pueden interactuar entre sí a través del envío de mensajes.
-
Definir la clase
Motor:Motor.javaclass Motor {
private boolean encendido;
public Motor() {
this.encendido = false; // El motor comienza apagado
}
public void encender() {
if (!encendido) {
encendido = true;
System.out.println("El motor está ahora encendido.");
} else {
System.out.println("El motor ya está encendido.");
}
}
public void apagar() {
if (encendido) {
encendido = false;
System.out.println("El motor está ahora apagado.");
} else {
System.out.println("El motor ya está apagado.");
}
}
public boolean isEncendido() {
return encendido;
}
} -
Definir la Clase
Coche:Coche.javaclass Coche {
private String marca;
private String modelo;
private Motor motor; // Composición: Coche tiene un Motor
public Coche(String marca, String modelo) {
this.marca = marca;
this.modelo = modelo;
this.motor = new Motor(); // Inicializa un nuevo motor
}
public void encenderMotor() {
System.out.println("Intentando encender el motor del coche " + marca + " " + modelo);
motor.encender(); // Envío de mensaje al motor para encender
}
public void apagarMotor() {
System.out.println("Intentando apagar el motor del coche " + marca + " " + modelo);
motor.apagar(); // Envío de mensaje al motor para apagar
}
public void estadoMotor() {
if (motor.isEncendido()) {
System.out.println("El motor del coche " + marca + " " + modelo + " está encendido.");
} else {
System.out.println("El motor del coche " + marca + " " + modelo + " está apagado.");
}
}
} -
Usar las clases en el método
main:EjemploCocheMotor.javapublic class EjemploCocheMotor {
public static void main(String[] args) {
Coche coche = new Coche("Ford", "Mustang");
// Comprobar el estado del motor
coche.estadoMotor();
// Encender el motor
coche.encenderMotor();
// Comprobar de nuevo el estado del motor
coche.estadoMotor();
// Apagar el motor
coche.apagarMotor();
// Comprobar de nuevo el estado del motor
coche.estadoMotor();
}
}
- Definición de clases:
- La clase
Motortiene métodos para encender y apagar el motor. Mantiene un atributo booleano (encendido) que indica si el motor está activo. - La clase
Cochecontiene un objetoMotor. Tiene métodos para encender y apagar el motor, así como para comprobar su estado.
- La clase
- Envío de mensajes:
- La clase
Cochellama al métodoencender()del objetoMotorcuando se invocaencenderMotor(). Esto representa el envío de mensajes dondeCochesolicita queMotorrealice la acción de encenderse. - De la misma manera, llama al método
apagar()del motor cuando se invocaapagarMotor().
- La clase
- Interacción entre objetos:
- El objeto
Cochecontrola el comportamiento del objetoMotora través de métodos, mostrando así cómo se puede establecer la interacción entre diferentes clases usando el envío de mensajes.
- El objeto