// ----------------------------------------------------------- // 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); } }
// ----------------------------------------------------------- // 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 } }