5. Valori Static
Metodi e attributi di classe
Sintassi: static <definire un attributo o un metodo>
Un attributo statico di una classe è condiviso da tutti gli oggetti della classe.
Un attributo statico di una classe, se pubblico, può essere acceduto senza la necessità di creare un oggetto, con la notazione <nome_classe>.<nome_attributo>
.
Un metodo statico di una classe può essere invocato senza la necessità di creare un oggetto, con la notazione <nome_classe>.<nome_metodo>(<parametri>)
.
Il nome della classe può essere omesso, se non ci sono ambiguità.
Un metodo static
può accedere solo ad attributi e metodi di tipo static
.
Un metodo convenzionale può liberamente accedere ad attributi e metodi di tipo static
.
Ex.
public class Shape {
static Screen screen=new Screen(); // note the initialization static void setScreen(Screen s) {screen=s;}
void show(Screen s) {setScreen(s);}
public static void main(String[] args) {
Shape.setScreen(new Screen()); // corrected
Shape.show(); // wrong, show is a normal method
Shape s1=new Shape(), s2=new Shape();
Screen s=new Screen();
s1.setScreen(s);
// correct, you can call static methods on objects
// at this point s2.screen==s1.screen==s
}
Attributi costanti
Gli attributi costanti possono essere definiti applicandogli la clausola final
.
final int COSTANTE = 0;
// Altro modo
final int COSTANTE;
COSTANTE = 0;