对象数组的题目
本帖最后由 910631286 于 2020-5-19 20:28 编辑package demo1;
public class StudentText {
public static void main(String[] args) {
Student[] stus=new Student;
for (int i = 0; i < stus.length; i++) {
stus = new Student();
stus.number=(i+1);
}
}
class Student{
int number;
int state;
int score;
}
}
为什么这一行会报错stus = new Student(); 报错为No enclosing instance of type StudentText is accessible. Must qualify the allocation with an enclosing instance of type StudentText (e.g. x.new A() where x is an instance of
StudentText). 是不是上面的public少了个p的原因?你补上试试 qiuyouzhi 发表于 2020-5-19 20:17
是不是上面的public少了个p的原因?你补上试试
这个是我复制的时候不小心删的,加上也是报错 本帖最后由 dq756620245 于 2020-5-20 10:09 编辑
{:10_257:}请楼主了解一下Java内部类的正确实例化方式,你先要StudentText studentText = new StudentText();然后StudentText.Student stus = studentText.new Student(); main方法是静态的,而Student内部类是动态的,你把Student类加上static修饰就可以了。
如果你不想加static修饰可以先new一个StudentText对象出来,再通过这个对象把内部类的对象new出来
public class StudentText{
public static void main(String[] args) {
Student[] stus=new Student;
StudentText t= new StudentText();
for (int i = 0; i < stus.length; i++) {
stus = t.new Student();
stus.number=(i+1);
}
}
class Student{
int number;
int state;
int score;
}
}
页:
[1]