20.- La clase Punto y su Interface.

20.- La clase Punto. 

La clase Punto produce objetos punto, con las dos coordenadas x e y, de números enteros, pero fácilmente se pueden convertir en reales y tendríamos una nueva clase.

Las operaciones y los objetos están situados, para mayor facilidad en el primer cuadrante. 

import java.util.*;

public class Punto{

    //tiene dos atributos, que forman el objeto punto;

    private int x;

    private int y;

    public Punto(){//Es el constructor de un punto especial, que es el origen: (0,0).

          x = 0;

          y = 0;

    }    

    public Punto(int x, int y){//Es el constructor de un punto cualquiera,this.x se refiere a la variable atributo, que toma el valor: (x,y).

          this.x = x;

          this.y = y;

    }

    //métodos:

    public double distanciaOrigen(){

        Punto p1 = new Punto(this.x,this.y);

        double distOrigen = Math.sqrt(p1.x*p1.x+p1.y*p1.y);

        System.out.println(distOrigen);

        return distOrigen;

    }    

    public double distancia2Puntos(Punto p2){

        Punto p1 = new Punto(this.x,this.y);

        double dist2Puntos = Math.sqrt(Math.pow(p1.x-p2.x,2)+Math.pow(p1.y-p2.y,2));

        System.out.println(dist2Puntos);

        return dist2Puntos;

    }    

    public void mover(int x, int y){

        Punto p1 = new Punto (this.x, this.y);

        p1.x = this.x + x;

        p1.y = this.y + y;

        

        System.out.println(p1.x+", "+p1.y);

    }    

    public static void main(String[] arg){

     Punto p1 = new Punto(10,0);

     p1.distanciaOrigen();

     Punto p2 = new Punto(0,10);

     p1.distancia2Puntos(p2); 

     p1.mover(4,7);

     p2.mover(4,7);

     p1.distanciaOrigen();

     p1.distancia2Puntos(p2);

    }

}

El constructor Punto puede ser muy complejo, con tal que es resultado sea un objeto punto. Por ejemplo, podría estar formado por dos puntos y obtener el punto medio. Por tres puntos y obtener el centro de masas del triángulo formado, ... aunque todo ello es mejor obtenerlo por métodos adicionales.

Class Punto

  • java.lang.Object
  • Punto

  • public class Punto
    extends java.lang.Object

Comentarios

Entradas populares de este blog

13 Tipo primitivo Char.

11.- Variable constante

27.- Tipos complejos o referencia: Métodos