Java main不会运行类中包含的类
试图解决psvm中的错误,老实说,我不知道什么地方出了问题,也不知道谷歌对此有何看法。 它不会让我在没有更多文字的情况下发布这篇文章,但我诚实地说,我不知道这个程序有什么问题,无法提供更多细节Java main不会运行类中包含的类,java,Java,试图解决psvm中的错误,老实说,我不知道什么地方出了问题,也不知道谷歌对此有何看法。 它不会让我在没有更多文字的情况下发布这篇文章,但我诚实地说,我不知道这个程序有什么问题,无法提供更多细节 public class backToSchoolDalton{ public class Person{ //Person Code public class Teacher extends Person{ //Teache
public class backToSchoolDalton{
public class Person{
//Person Code
public class Teacher extends Person{
//TeacherCode
public class Student extends Person{
//StudentCode
public class CollegeStudent extends Student {
//CollegeStudentCode
public static void main(String[] args) {
ERROR HEAVEN RIGHT HERE
backToSchoolDalton a = new backToSchoolDalton();
backToSchoolDalton b = new backToSchoolDalton();
backToSchoolDalton c = new backToSchoolDalton();
backToSchoolDalton d = new backToSchoolDalton();
a.Person("Coach Bob", 27, "M");
b.Student("Lynne Brooke", 16, "F", "HS95129", 3.5);
c.Teacher("Duke Java", 34, "M", "Computer Science", 50000);
d.CollegeStudent("Ima Frosh", 18, "F", "UCB123",
4.0, 1, "English");
Person bob = new Person("Coach Bob", 27, "M");
System.out.println(bob);
Student lynne = new Student("Lynne Brooke", 16, "F", "HS95129", 3.5);
System.out.println(lynne);
Teacher mrJava = new Teacher("Duke Java", 34, "M", "Computer Science", 50000);
System.out.println(mrJava);
CollegeStudent ima = new CollegeStudent("Ima Frosh", 18, "F", "UCB123",
4.0, 1, "English");
System.out.println(ima);
}
}
请帮忙 编辑:我下面的答案是错误的。您可以在同一个类中创建一个类的实例,只要该类没有在构造函数中这样做。不要删除我的答案,这样别人就可以从我的错误中吸取教训 据我所知,不能在同一个类中声明类的实例。您需要将main()移到BacktoSchoolAlton()之外: 有两种(常见)类型的嵌套类。内部类与其周围类的实例耦合,这意味着您需要先构造周围类的实例,然后才能使用它。另一方面,静态嵌套类不是。它与任何其他类一样,只是出于组织原因在另一个类中定义了它 您发布的解决方案是构造
backToSchoolDalton
的实例,因为您现在有了一个周围类的实例。但那不是你真正想要的。相反,只需将内部类设为静态嵌套类,就可以直接构造这些类
public static class Person {
//Person Code
}
public static class Teacher extends Person {
//TeacherCode
}
...
Teacher c = new Teacher("Duke Java", 34, "M", "Computer Science", 50000);
我们可以在java中使用您在代码中发布的内容吗?您真的需要记下这个问题并阅读java语言教程……您的代码没有多大意义为什么要添加这么多内部类?你的a、b、c、d实例没有意义!即使您可以使其兼容,这也是一段糟糕的代码:(如果main在共享文件名的类之外,则会出现错误。哦,请尝试将backToSchoolDalton放在main中function@EthanFischer否,只有在类实例化期间实例化它们才会导致无限循环否则可能吗?@Ethan Fischer我看到的
backToSchoolDalton
实例化的唯一地方是main()
并且在创建对象时不会调用该方法。据我所知,您不能在同一个类中声明类的实例。
这句话是不正确的。我没有投票反对您,只是想让您知道这不是正确的。
public static void main(String[] args) {
backToSchoolDalton s = new backToSchoolDalton();
Person bob = s.new Person("Coach Bob", 27, "M");
System.out.println(bob);
Student lynne = s.new Student("Lynne Brooke", 16, "F", "HS95129", 3.5);
System.out.println(lynne);
Teacher mrJava = s.new Teacher("Duke Java", 34, "M", "Computer Science", 50000);
System.out.println(mrJava);
CollegeStudent ima = s.new CollegeStudent("Ima Frosh", 18, "F", "UCB123",
4.0, 1, "English");
System.out.println(ima);
}
public static class Person {
//Person Code
}
public static class Teacher extends Person {
//TeacherCode
}
...
Teacher c = new Teacher("Duke Java", 34, "M", "Computer Science", 50000);