190 likes | 303 Views
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; }
E N D
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; } }
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(double x,double y) { this.x=x; this.y=y; } … … Punto p,q,r; 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 4 3