Oggetti Java Un esempio di oggetto • Punto nel piano cartesiano • Definito da due coordinate: x e y P y x La classe Punto public class Punto { private double x; private double y; public double getx(){ return x; } public void setx(double x){ this.x=x; } public double gety(){ return y; } public void sety(double y) { this.y=y; } } Punto -x : double -y : double +...() +getx() : double +setx(in x : double) +gety() : double +sety(in y : double) this • this è un riferimento all’oggetto • Es. this.x = x • In questo caso serve per differenziare l’attributo x dell’oggetto dal parametro x del metodo I metodi • La sintassi di un metodo è la seguente: <modificatore> <tipo> <nome> <parametri>){ <corpo> } Modificatore • Definisce la visibilità – public – private – protected • E altre informazioni – static (appartiene alla classe) – final (non modificabile) Firma (Segnatura) • La firma di un metodo è composta da: – Nome e lista ordinata dei tipi dei parametri • Es. la firma di setx è (setx,double) • La firma non comprende il tipo del metodo né i nomi dei parametri Overloading • Sovraccarico • Più metodi hanno lo stesso nome ma firma diversa (numero e/o tipo di parametri) Gli oggetti public class ProvaPunto { public static void main(String arg[]{ Punto p; p=new Punto(); System.out.print(p.getx()); } } ? P x y Inizializzazione degli attributi • E’ possibile definire un valore iniziale per gli attributi public class Punto { private double x=0; private double y=0; … } Costruttori • Il costruttore è un metodo che ha lo stesso nome della classe • Non ha modificatore e non ha tipo • Il costruttore viene chiamato quando si istanzia un oggetto della classe • Possono esistere più costruttori con firma (segnatura) diversa Costruttori per Punto Punto() { x=0; y=0; } Punto(double x) this.x=x; y=0; } … … Punto p,q,r; { Punto(double x,double y) { this.x=x; this.y=y; } p=new Punto(); q=new Punto(3.5); r=new Punto(5,3.2); … … Metodo distanzaOrigine • Restituisce la distanza del punto dall’origine degli assi cartesiani • Utilizziamo i metodi della classe Math public double distanzaOrigine() { return (Math.sqrt(Math.pow(x,2)+Math.pow(y,2))); } Metodo stampa • Visualizza le coordinate del punto nella forma (x,y) public void stampa(){ String rappresent="( "; rappresent=rappresent+x; rappresent=rappresent+" , "; rappresent=rappresent+y; rappresent=rappresent+" )"; System.out.print(rappresent); } Metodo toString • Restituisce una rappresentazione dell’oggetto sotto forma di stringa public String toString() { return "( "+x+" , "+y+" )"; } Ridefinizione del metodo stampa • Avendo definito il metodo toString possiamo rivedere l’implementazione del metodo stampa public void stampa(){ System.out.print(this.toString()); } Metodo distanzaDaPunto • Restituisce la distanza da un punto passato come parametro Metodo piùVicinoOrigine • Restituisce true se il metodo in esame è più vicino all’origine di un punto che riceve come parametro Metodo quadrante • Restituisce il numero del quadrante 2 1 0,0 3 4