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

Constructor Summary

Method Summary

Methods inherited from class java.lang.Object

      • clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

PruebaPunto[Show source in BlueJ]

      • public PruebaPunto()

Method Detail

main[Show source in BlueJ]

      • public static void main​(java.lang.String[] arg)

    • 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)
    true
    true
    true
    true
    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)
  • 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

Entradas populares de este blog

Definición de la estructura o atributos que tendrán los objetos de una clase.

Métodos: Declaración.

La clase String de java