Estruturas de Dados 2018/2019 (CC1007) - DCC/FCUP

Voltar à Lista de Código de Exemplo


Uma primeira classe

(Point.java)

// -----------------------------------------------------------
// Estruturas de Dados 2018/2019 (CC1007) - DCC/FCUP
// http://www.dcc.fc.up.pt/~pribeiro/aulas/edados1819/
// -----------------------------------------------------------
// TAD Ponto 2D (num plano) como falado nas primeiras aulas
// Última alteração: 04/02/2019
// -----------------------------------------------------------

public class Point {
   // Variavel estática com nr pontos criados
   static int npoints = 0; 
   
   // Atributos
   int x;
   int y;

   // Construtor que recebe o conteúdo a colocar nos atributos
   Point(int xvalue, int yvalue) {
      x = xvalue;
      y = yvalue;
      npoints++;
   }

   // Construtor padrão (sem argumentos)
   Point() { 
      x = 0;
      y = 0;
      npoints++;
   }
   
   // Método para mostrar o conteúdo das variáveis x e y
   void show() {
      System.out.println("(" + x + "," + y + ")");
   }

   // mostra conteudo da variavel estática
   static void showNumPoints() {
      System.out.println("npoints = " + npoints);
   }
}

(TestPoint.java)

// -----------------------------------------------------------
// Estruturas de Dados 2018/2019 (CC1007) - DCC/FCUP
// http://www.dcc.fc.up.pt/~pribeiro/aulas/edados1819/
// -----------------------------------------------------------
// Exemplo de utilização do TAD Ponto
// Última alteração: 04/02/2019
// -----------------------------------------------------------

public class TestPoint {
   public static void main(String[] args) {
      // É possível chamar método estático mesmo sem objectos criados
      Point.showNumPoints();   // Escreve npoints = 0

      Point p1 = new Point();      // p1 fica com (0,0)
      p1.show();
      Point p2 = new Point(42,13); // p2 fica com (42,13)
      p2.show();
      
      Point.showNumPoints();   // Escreve npoints = 2

      Point p3 = new Point(1,1);  // p3 fica com (1,1)
      Point p4 = new Point(1,1);  // p4 fica com (1,1)
      System.out.println(p3==p4); // escreve false, porque são referências 
                                  // para objectos diferentes, embora tenham
                                  // o mesmo conteúdo

      Point.showNumPoints();   // Escreve npoints = 4
   }
}