Tipos complejos. El operador new.
Para crear un objeto o instancia de la clase Punto, hay que usar un método constructor de dicha clase, pasándole como parámetros expresiones del tipo indicado en la documentación y anteponiéndole el operador new:
new Punto(); new Punto(2*3, 4*4); new Punto(Punto p);
Normalmente una clase como la clase Punto está completa tal como la hemos implementado. Se llama clase Tipo de dato. Y se utiliza en otras clases desde las que se importan los métodos y los atributos a través de los set y los get. Estas clases también pueden ser clases Tipo de datos en los que tienen como atributos datos de tipo Punto. También se pueden utilizar o probar en Clases programa, o simplemente añadiéndole el método principal o de arranque main(String[] arg).
Hemos usado una Clase programa llamada PruebaPunto con la definición siguiente:
public class PruebaPunto{
public static void main(String[] arg){
System.out.println("De cómo se usa la clase punto:");
Punto origen = new Punto();//Sucesivamente: Clase (Punto), nombre del objeto punto(origen).
//Lo inicializamos con el valor de new Punto();
Punto p = new Punto(2*3,4*4);//Sucesivamente: Clase (Punto), nombre del objeto punto(p).
//Lo inicializamos con el valor de new Punto(2*3,4*4): p.x = 6, p.y =16;
Punto p1 = new Punto(p);//Sucesivamente: Clase (Punto), nombre del objeto punto(p1).
//Lo inicializamos con el valor de new Punto(Punto p): p1.x = 6, p1.y =16;
Punto p2 = p1;
System.out.println(origen.getLocacion());
System.out.println(p.getLocacion());
System.out.println(p1.getLocacion());
System.out.println(p2.getLocacion());
System.out.println(origen.equals(origen.getLocacion()));
System.out.println(p.equals(p.getLocacion()));
System.out.println(p1.equals(p1.getLocacion()));
System.out.println(p2.equals(p1));
System.out.println( origen.toString());
System.out.println( p.toString());
System.out.println( p1.toString());
System.out.println( p1.toString());
}
}
Su interfaz es:
Class PruebaPunto
- java.lang.Object
- PruebaPunto
public class PruebaPunto
extends java.lang.Object
- java.lang.Object
- PruebaPunto
public class PruebaPunto extends java.lang.Object
Constructor Summary
Constructor Description PruebaPunto()
Constructor Description PruebaPunto()
Method Summary
Modifier and Type Method Description static void
main(java.lang.String[] arg)
Modifier and Type Method Description static void
main(java.lang.String[] arg)
Methods inherited from class java.lang.Object
Constructor Detail
PruebaPunto[Show source in BlueJ]
Method Detail
main[Show source in BlueJ]
- Y el resultado de su ejecución:
De cómo se usa la clase punto:Punto de coordenadas (0.0,0.0)Punto de coordenadas (6.0,16.0)Punto de coordenadas (6.0,16.0)Punto de coordenadas (6.0,16.0)truetruetruetruePunto de coordenadas (0.0,0.0)Punto de coordenadas (6.0,16.0)Punto de coordenadas (6.0,16.0)Punto de coordenadas (6.0,16.0)- A los tipos de datos complejos u objetos se les llama tipos referencia, porque almacenan en su nombre -nombre del objeto- la REFERENCIA o dirección de memoria donde se guardan al construirlos. Todos los objetos se manipulan mediante sus referencias. Un mismo objeto, una misma referencia, puede tener muchos nombres distintos, si todos tienen la misma referencia:
- Punto p1 = new Punto(1,-1);
- Punto p2 = p;
- Los dos puntos p y p1 apuntan al mismo objeto: No solo tienen el mismo valor, que se comprueba con equals, sino que son un único punto,
Los métodos se aplican con el operador punto: System.out.println(p1.equals(p1.getLocacion()));- Todos los puntos devuelven algo: los que devuelven un valor que se puede asignar a una variable del tipo, se indica en la cabecera del método que tipo de valor se trata. Los que NO DEVUELVEN NADA que se pueda asignar a una variable, se llaman void, vacío, pero ne es que no hagan nada, sino que lo que hacen podemos obtenerlo de otra manera ya predefinida.
Comentarios
Publicar un comentario