Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > No entiendo lo que acabo de teclear.

Veamos estoy viendo la creación de objetos, el código del ejemplo está abajo.
El problema es que no se en que parte he creado el objeto y no acabo de entender que función tiene el this. Por lo poco que he ido leyendo este ejercicio se podría haber hecho con simples variables String. ¿Para que necesito crear el Objeto? ¿Que diferencia hay entre Coche y coche? y ¿Que hace realmente getModelo? ¿ realmente que pretende enseñarme este ejercicio? Agradecido de antemano.

class Coche {
private String modelo;
private String matricula;
private String color;

public void setModelo(String modelo) {
this.modelo = modelo;

}
public void setMatricula(String matricula){
this.matricula = matricula;
}

public void setColor (String color){
this.color = color;
}

public String getModelo(){
return this.modelo;
}

public String getMatricula(){
return this.matricula;
}

public String getColor(){
return this.color;
}

public static void main(String[] args) {
Coche coche = new Coche();
coche.setModelo ("Renault Laguna");
coche.setMatricula("1400BWN");
coche.setColor ("Verde");
System.out.println("El modelo es :" + coche.getModelo());
System.out.println("La matricula es :" + coche.getMatricula());
System.out.println("El color es :" + coche.getColor());
}
}

noviembre 7, 2011 | Registered Commenterhugodepino

Este código pretende enseñarte qué es la Programación Orientada a Objetos.

Coche es una clase. Por sí sola sólo dice cómo es un coche. Es, por así decirlo, un modelo o molde. Todos los coches que crees van a tener esa estructura. En ella hay 3 atributos que definen cómo es un coche, que son modelo, matrícula y color. Es decir, todos los coches que crees van a tener un modelo, una matricula y un color.

Cuando haces:

Coche coche = new Coche();

Lo que estás creando es un coche. Cada vez que haces un "new" estás creando un objeto nuevo con ese "molde". Si tuviéramos este código:

Coche coche1 = new Coche();
Coche coche2 = new Coche();
Coche coche3 = new Coche();

Tendríamos tres objetos diferentes creados con la misma clase o "molde".

Los métodos setModelo, setColor y setMatricula lo que hacen es definir o decir cómo es cada coche.

Coche coche1 = new Coche();
coche1.setModelo("Audi");
coche1.setColor("rojo");
coche1.setMatrícula("11111");

Coche coche2 = new Coche();
coche2.setModelo("Ford");
coche2.setColor("blanco");
coche2.setMatrícula("22222");

Coche coche3 = new Coche();
coche3.setModelo("BMW");
coche3.setMatrícula("33333");
coche3.setColor("azul");

Al final tendríamos 3 coches:
- El objeto coche1 sería un Audi rojo.
- El objeto coche2 sería un Ford blanco.
- El objeto coche3 sería un BMW azul.

Como ves, tenemos tres objetos diferentes (coche1, coche2 y coche3) que han sido creados a partir de la misma clase (Coche).

noviembre 7, 2011 | Registered CommenterUnai Valle

Bueno, primero que nada. Eso que escribiste, es una clase.

En programación orientada a objetos la clase es la unidad basica, por llamarla de alguna forma. En java, una clase define un tipo... asi como tenes tipos String, integer, etc... cuando creas una clase, podes instanciar objetos del tipo de esa clase.

Un objeto en POO es la instancia de una clase. En tu caso si te creas un objeto coche, va a tener 3 atributos Modelo, Matricula y Color.

Los cuales van a poder ser accedidos desde fuera de la clase con los metodos(funciones) getModelo, getMatricula y getColor... asi como setModelo, setMatricula y setColor lo que hacen es pasarle un valor a los atributos.

El this, es una palabra reservada que hace referencia a la instancia acutal(al objeto) desde el que se está invocando ese metodo o atributo.

Cual es la ventaja de esto? Mas que nada que cuando programas cosas mas grosas, te facilita la reutilización de codigo, la implementación de patrones de diseño, patrones GRASP. Hace tu codigo mas seguro y mas reutilizable.

igual, unaivalle lo explicó bastante bien... saludos ^^

noviembre 9, 2011 | Registered Commenterleojg