JAVA中"静态方法中不能直接调用非静态的属性和方法"何以理解?举个例子

那主函数可以new本类,之后用对象调非静态方法啊

class test{
public int i=1;
public static int y=2;
public static void doi2()
{
System.out.println("good");
}
public void doi()
{
System.out.println(i);
}
public static void doi3()
{

System.out.println(i);静态方法中不能直接调用非静态的属性
System.out.println(y);正确
doi();这句话也错因为静态方法中不能直接调用非静态方法
doi2();正确
}
}
——————————————————————————————————————————
回楼主,如果你这个对象中有非静态方法的话那是可以调用的,因为非静态方法就是用new出来的对象调用的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-04-19
最常见的,main方法必须为静态方法,就不能调用本类中非static的方法。

class Example {
void notStaticMethod() {
}
static void staticMethod() {
}
public static void main(String[] args) {
staticMethod(); //正确
notStaticMethod(); //报错
}
}
相似回答