// ----------------------------------------------------------- // Estruturas de Dados 2021/2022 (CC1007) - DCC/FCUP // http://www.dcc.fc.up.pt/~pribeiro/aulas/edados2122/ // ----------------------------------------------------------- // TAD Ponto 2D (num plano) como falado nas primeiras aulas // Ultima alteracao: 04/02/2019 // ----------------------------------------------------------- public class Point { // Variavel estatica com nr pontos criados static int npoints = 0; // Atributos int x; int y; // Construtor que recebe o conteudo a colocar nos atributos Point(int xvalue, int yvalue) { x = xvalue; y = yvalue; npoints++; } // Construtor padrao (sem argumentos) Point() { x = 0; y = 0; npoints++; } // Metodo para mostrar o conteudo das variaveis x e y void show() { System.out.println("(" + x + "," + y + ")"); } // mostra conteudo da variavel estatica static void showNumPoints() { System.out.println("npoints = " + npoints); } }
// ----------------------------------------------------------- // Estruturas de Dados 2021/2022 (CC1007) - DCC/FCUP // http://www.dcc.fc.up.pt/~pribeiro/aulas/edados2122/ // ----------------------------------------------------------- // Exemplo de utilizacao do TAD Ponto // Ultima alteracao: 04/02/2019 // ----------------------------------------------------------- public class TestPoint { public static void main(String[] args) { // E possivel chamar metodo estatico 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 sao referĂȘncias // para objectos diferentes, embora tenham // o mesmo conteudo Point.showNumPoints(); // Escreve npoints = 4 } }