miércoles, 11 de julio de 2018

Curso de Java Orientado a Web: POO II


POO II

La clase Auto escrita hasta ahora, si bien utiliza la sintaxis de Java, no responde correctamente a algunos conceptos de POO. Por lo tanto, es correcto aclararlos para continuar escribiendo programas Java correctamente.

Estado Interno
Este concepto se refiere a las variables que le pertenecen a los objetos y no son visibles para el resto. 
En Java, se aplica con el modificador private, por ejemplo:

public class Empleado{
    private double sueldo;
}



De esta manera, si creamos dos instancias de Empleado (empleado1 y empleado2), entre ellos no podrian conocer el sueldo del otro.

La Teoria de Objetos nos dice que un objeto no debe modificar directamente los atributos de otro, sino que debemos crear metodos desde las clases que se encarguen de esa modificacion. De tal manera, supongamos que queremos aumentarle el sueldo al empleado. No hacemos asi:

empleado1.sueldo = empleado1.sueldo+ 1000;

Lo que hacemos es presentar desde la clase Empleado un método que permita modificar el sueldo de las instancias. Asi:

public class Empleado {
    private double sueldo;
    
    public void AumentarSueldo(double aumento) {
        sueldo = sueldo+aumento;
    }
}



De tal manera, en la instancia empleado1 se modifica el sueldo asi:

empleado1.AumentarSueldo(1000.0)


Por lo tanto, en ProyectoAuto modificaremos la clase Auto. para que los atributos ahora sean privados.




Guardamos con Ctrl + S y vamos a la clase Main, vemos muchos errores del tipo "Color has private access in Auto". Debemos entonces, declarar metodos para inicializar los valores. Pero recuerden: tenemos que hacerlo en la clase Auto.

En la clase Auto vamos a Code ==> Generate...  y seleccionamos Getters and Setters. Seleccionamos todas las variables y damos a Ok.



Entonces, para darle valores a los objetos debemos usar los metodos Setter y para Consultar los valores debemos usar los metodos Getter. Por ejemplo, para "settear" el color del objeto Gol1 a "Rojo" usaremos la siguiente sintaxis:

Gol1.setColor("Rojo");

Y para consultar el color, usaremos:

Gol1.getColor();

Reemplacen como corresponda en Main.java.



Guardamos con Ctrl + S y Damos en Run ==> Run Main.

Obtendremos el mismo resultado que antes. Pero ahora estamos respetando un poco más el Paradigma de Objetos.

No hay comentarios.:

Publicar un comentario