是不是你的A是main所在的这个类的一个内部方法,如果是的,你把 class A 改成static class A就可以了。
楼上的说得可能不对吧? main里面的类不一定要是static的哦。
你自己实验一下就可以了: public class Test{ class name{ void print(){System.out.println("Test");} } public static void main(String[] args) { name n=new name(); n.print(); } } 这个程序产生的错误与他的程序产生了同样的错误。 而加上static 后却是正确的
严重同意 CNSC(王) 的说法!!
严重同意 CNSC(王) 的说法!!
public class Test{ class name{ void print(){System.out.println("Test");} } public static void main(String[] args) { name n=new name(); n.print(); } } 如果用这种方式(类中其它类作成员) name n=new name();只实例化了n,但n中的name只是一个类型,还是个空值。最好声明一个name类型的变量,再实例化它。进行调用
main里面的类不一定要是static的哦。
public class Test{
class name{
void print(){System.out.println("Test");}
}
public static void main(String[] args)
{
name n=new name();
n.print();
}
}
这个程序产生的错误与他的程序产生了同样的错误。
而加上static 后却是正确的
class name{
void print(){System.out.println("Test");}
}
public static void main(String[] args)
{
name n=new name();
n.print();
}
}
如果用这种方式(类中其它类作成员)
name n=new name();只实例化了n,但n中的name只是一个类型,还是个空值。最好声明一个name类型的变量,再实例化它。进行调用
main方法是程序运行的入口,这时类的对象还没有实例化,所以必须是static的,无需实例化就可以运行。
应该向如下把它new出来:public class T{
int t1 = 0;
public class A{
int i = 0;
}
public static void main(String args[]){
T t = new T();
A a = t.new A(); // 这行
a.i = 10;
System.out.println(a.i);
}
}