C'e una cosa di static che non mi e' tornata molto.
Se dichiaro un metodo di una classe Static non servira' istanziare l'oggetto per chiamarlo ma mi bastera' chiamare Classe.metodo()
quello che non mi torna e' che questo codice funziona!
codice:
import static access.Print.*;
class Rectangle{
int h;
int b;
Rectangle(int h1, int b1){
h = h1;
b = b1;
}
int area(){
return b*h;
}
static int asd(int asd1){
return asd1;
}
}
public class General {
public static void main(String[] args){
Rectangle r = new Rectangle(3,6);
print(r.area());
print(r.asd(20)); // <---- Che strano ..
print(Rectangle.asd(20));
}
}
/* OUTPUT:
* 18
* 20
* 20*/
Il secondo print() non dovrebbe girare ma il compilatore non mi dice niente.
Solo eclipse mi dice che non dovrebbe essere scritto cosi!
Come mai compila e gira? Questo non capisco...