当前位置: 代码迷 >> J2SE >> 很纠结的一个有关问题。
  详细解决方案

很纠结的一个有关问题。

热度:106   发布时间:2016-04-24 01:18:12.0
很纠结的一个问题。。。
现在有两个包,下面的是第一包,在第二个包里看不到GraduateStudent类...
Java code
package com.neusoft.vo;     public class Student {     public String name;     public String sex;     public int age;     public String schoolName;     public  Student (){}     public  Student(String name,String sex,int age,String schoolName){         this.name=name;         this.sex=sex;         this.age=age;         this.schoolName=schoolName;      }     class GraduateStudent extends  Student {        String specialityl;        String teacher;         public GraduateStudent(){}      public GraduateStudent(String name,String sex,int age,String schoolName,String specialityl,String teacher){             super.name=name;             super.sex=sex;             super.age=age;             super.schoolName=schoolName;             this.specialityl=specialityl;             this.teacher=teacher;        }


Java code
package test;import com.neusoft.vo.*;public class TestStudentAndGraduateStudent extends Student {    public static void main(String[] args) {        Student zhou[]=new Student[2];        zhou[0]=new Student("赵大","男",19,"华南理工大学");        //不知道下面这样写可不可以,是Student 的引用然后是GraduateStudent类型的数组。应该行的吧        zhou[1]=new GraduateStudent("孙三","男",25,"华南师范大学","教育学","李四");

总是显示GraduateStudent不可见。。。把它修饰成public 的话,Student类又看不到了。。。
折磨了很久都不懂。。
刚学啊。。很多都不懂。。

请大牛们解答。。。

------解决方案--------------------
你的GraduateStudent是内部类啊....
package com.neusoft.vo;
public class Student {
public String name;
public String sex;
public int age;
public String schoolName;

public Student (){}
public Student(String name,String sex,int age,String schoolName){
this.name=name;
this.sex=sex;
this.age=age;
this.schoolName=schoolName;
}
}
//移到外边来声明
class GraduateStudent extends Student {
String specialityl;
String teacher;
 
public GraduateStudent(){}
public GraduateStudent(String name,String sex,int age,String schoolName,String specialityl,String teacher){
super.name=name;
super.sex=sex;
super.age=age;
super.schoolName=schoolName;
this.specialityl=specialityl;
this.teacher=teacher;
}
------解决方案--------------------
GraduateStudent是Student类的内部类,你把这两个类分别放在两个文件中(还在同一个包里)试试
------解决方案--------------------
把它写成两个类
Java code
package com.neusoft.vo;     public class Student {     public String name;     public String sex;     public int age;     public String schoolName;     public  Student (){}     public  Student(String name,String sex,int age,String schoolName){         this.name=name;         this.sex=sex;         this.age=age;         this.schoolName=schoolName;      }
------解决方案--------------------
不可能吧,但是
Java code
            System.out.println("姓名:"+zhou[i].name+"\n"+"性别:"+zhou[i].sex+"\n"+"年龄:"+zhou[i].age+"\n"+"学校:"+zhou[i].schoolName+"\n"+"专业:"                                 +zhou[i].specialityl+"\n"+"导师:"+zhou[i].teacher);
------解决方案--------------------
  相关解决方案