最近在乞求java编程时,遇到了一个错误。请帮助
有两个类,PersonTest.java:
public class PersonTest {
public static void main(String[] args) {
Person person1=new Person("dummy","sdymmt","20","male","washington");
System.out.println("Name: "+person1.getName());
System.out.println("Surname: "+person1.getSurname());
System.out.println("Age: "+person1.getAge());
System.out.println("Gender:" +person1.getGender());
System.out.println("Birthplace: "+person1.getBirthplace());
Person person2= new Person(400);
System.out.println("Income:"+person2.getX()+" mije leke");
System.out.println("Tax:"+person2.Taksat()+" mije leke");
Student student1= new Student("adsd","zedsdsadza");
System.out.println("emri"+student1.getEmer());
}
}
以及Person.java:
public class Person {
private String Name;
private String Surname;
private String Age;
private String Gender;
private String Birthplace;
private double x;
public Person()
{
}
public Person(String Name, String Surname, String Age, String Gender, String Birthplace) {
this.Name = Name;
this.Surname = Surname;
this.Age = Age;
this.Gender = Gender;
this.Birthplace = Birthplace;
}
public String getName() {
return Name;
}
public String getSurname() {
return Surname;
}
public String getAge() {
return Age;
}
public String getGender() {
return Gender;
}
public String getBirthplace() {
return Birthplace;
}
public Person(double x) {
this.x = x;
}
public double getX() {
return x;
}
double Taksat() {
return (0.1 * x);
}
public class Student extends Person {
private String University;
private String Faculty;
public Student(String Universiteti, String Fakulteti) {
super(Name, Surname, Age, Gender, Birthplace);
this.Faculty = Fakulteti;
this.University = Universiteti;
}
public String getFaculty() {
return Faculty;
}
public String getUniversity() {
return University;
}
}
}
两个类在同一个默认包中。如何解决测试类不将内部类学生识别为类的事实。
嵌套的非静态类称为Inner Classes
,如果没有Outer class
(封装它们),这些类就无法生存。
Java文档
InnerClass的实例只能存在于OuterClass,并可以直接访问其封闭实例。
要实例化内部类,必须首先实例化外部类班然后,在外部对象中创建内部对象语法:
OuterClass.InnerClass innerObject=outerObject.new InnerClass();
尝试使用:
Person.Student student = person1.new Student(PARAMETERS);
重要标记:
当然,您应该高度考虑这不是一个好的设计,因为您可能希望这些类在Person class
之外可见,但也因为Person.Student
继承自Person
,它已经包含了Student class
,它通常看起来像一个循环或圆关系,这通常不是一个很好的主意。
因为没有Student类。由于它嵌套,它是Person.Student