Da UML a JAVA
Implementare una classe (1)
Implementare una classe (2)
public class A {
private String attribute1;
private int attribute2;
public A() {
super();
}
A a0 = new A();
a0.function_A();
a0.function_B();
B b1 = new A();
b1.function_B();
b1.function_A(); //errore
…
}
Generalizzazione: polimorfismo (1)
Generalizzazione: polimorfismo (2)
public class Poligono {
public void disegna() {
System.out.println("Poligono generico.");
}
}
@Override
public double getPerimetro() {
return 2 * 3.14 * this.raggio;
}
@Override
public double getArea() {
return 3.14 * this.raggio * this.raggio;
}
}
Classi astratte (5)
public class Rettangolo extends FiguraGeometrica {
private double altezza;
private double base;
}
…
}
Dipendenza tra classi (3)
public class A {
…
public void method_A(B b) {
…
c = b.getField(); Riceve come parametro un
… oggetto della classe B
}
}
Associazione tra classi
myB
public class A {
B myB;
myB
…
}
folder
public A() {
this.myB = new B();
}
}
Classe Associativa
Classe Associativa: una possibile
traduzione
public class Studente() {
ArrayList<Corso> corsi;
}
@Override
public String toString() {
return this.nome + " " + this.cognome;
}
}
La classe Object: equals() (1)
La classe Object: equals() (2)
• In particolare è buona norma:
– controllare che l’oggetto passato non sia NULL; nel
caso ritornare false
– controllare che l’oggetto passato non sia l’oggetto
stesso; in questo caso ritornare automaticamente
true
– controllare che l’oggetto passato sia compatibile
con l’oggetto con cui si sta effettuando il
confronto; in particolare, deve essere dello stesso
tipo
La classe Object: equals() (3)
@Override
public boolean equals(Object o) {
if(o != null && this != o && o instanceof Cliente) {
return this.codiceFiscale.equals(o.codiceFiscale);
} else {
return false;
}
}