oggetti java. un esempio di oggetto punto nel piano cartesiano definito da due coordinate: x e y x y...
Post on 01-May-2015
239 Views
Preview:
TRANSCRIPT
OggettiJava
Un esempio di oggetto
• Punto nel piano cartesiano• Definito da due coordinate: x e
y
x
yP
La classe Punto
+...()+getx() : double+setx(in x : double)+gety() : double+sety(in y : double)
-x : double-y : double
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 oggettipublic class ProvaPunto {
public static void main(String arg[]{
Punto p;
p=new Punto();
System.out.print(p.getx());
}
}
Px
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 PuntoPunto() {
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 stringapublic 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
12
3 40,0
top related