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
Scarica

ppt