this.method(); //not allowed
У вас нет экземпляра this
в статическом контексте, поэтому вы не можете вызвать метод.
new A().method(); //allowed, how?
У вас есть экземпляр, созданный оператором new
, чтобы вы могли вызвать метод.
Чтобы вызвать метод без реального экземпляра, вы должны объявить его как статический.то есть:
static void method(){
System.out.println(“Class A”);
}
это будет работать при вызове просто method()
и через экземпляр:
public class A {
public static void main(String[] argv) {
method(); //works because method is static
new A().method(); //still ok, we can call static method using an instance
this.method(); //not allowed, there is no 'this' in static context
}
static void method(){
System.out.println("Class A");
}
}