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;
}
double es un tipo de dato primitivo de Java que se usa para manipular datos de tipo Decimal.
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;
}
}
void es un modificador para los metodos que nos permite decir que el mismo no tendra un valor de retorno.
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.
public class Auto {
private int NumeroDePuertas;
private int VelocidadMaxima;
private int CaballosDeFuerza;
private int VelocidadActual;
private String Patente;
private String Modelo;
private String Marca;
private String Origen;
private String Estado;
private String Color;
String Prender(){
Estado = "Prendido";
return "Auto Encendido";
}
String Acelerar(int Aceleracion){
VelocidadActual = VelocidadActual + Aceleracion;
return "El auto se encuentra a: "+ VelocidadActual;
}
}
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.
public class Auto {
private int NumeroDePuertas;
private int VelocidadMaxima;
private int CaballosDeFuerza;
private int VelocidadActual;
private String Patente;
private String Modelo;
private String Marca;
private String Origen;
private String Estado;
private String Color;
public int getNumeroDePuertas() {
return NumeroDePuertas;
}
public void setNumeroDePuertas(int numeroDePuertas) {
NumeroDePuertas = numeroDePuertas;
}
public int getVelocidadMaxima() {
return VelocidadMaxima;
}
public void setVelocidadMaxima(int velocidadMaxima) {
VelocidadMaxima = velocidadMaxima;
}
public int getCaballosDeFuerza() {
return CaballosDeFuerza;
}
public void setCaballosDeFuerza(int caballosDeFuerza) {
CaballosDeFuerza = caballosDeFuerza;
}
public int getVelocidadActual() {
return VelocidadActual;
}
public void setVelocidadActual(int velocidadActual) {
VelocidadActual = velocidadActual;
}
public String getPatente() {
return Patente;
}
public void setPatente(String patente) {
Patente = patente;
}
public String getModelo() {
return Modelo;
}
public void setModelo(String modelo) {
Modelo = modelo;
}
public String getMarca() {
return Marca;
}
public void setMarca(String marca) {
Marca = marca;
}
public String getOrigen() {
return Origen;
}
public void setOrigen(String origen) {
Origen = origen;
}
public String getEstado() {
return Estado;
}
public void setEstado(String estado) {
Estado = estado;
}
public String getColor() {
return Color;
}
public void setColor(String color) {
Color = color;
}
String Prender(){
Estado = "Prendido";
return "Auto Encendido";
}
String Acelerar(int Aceleracion){
VelocidadActual = VelocidadActual + Aceleracion;
return "El auto se encuentra a: "+ VelocidadActual;
}
}
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.
public class Main {
public static void main(String[] args){
Auto Gol1 = new Auto();
Gol1.setColor( "Rojo");
Gol1.setPatente( "AXT 100011");
Gol1.setNumeroDePuertas( 5);
Gol1.setVelocidadMaxima(185);
Gol1.setCaballosDeFuerza(75);
Gol1.setModelo("Gol");
Gol1.setMarca("VolksWagen");
Gol1.setOrigen("Brasil");
Gol1.setVelocidadActual(0);
Gol1.setEstado("Apagado");
System.out.println(Gol1.Prender());
System.out.println(Gol1.Acelerar(20));
}
}
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