Java main不会运行类中包含的类

Java main不会运行类中包含的类,java,Java,试图解决psvm中的错误,老实说,我不知道什么地方出了问题,也不知道谷歌对此有何看法。 它不会让我在没有更多文字的情况下发布这篇文章,但我诚实地说,我不知道这个程序有什么问题,无法提供更多细节 public class backToSchoolDalton{ public class Person{ //Person Code public class Teacher extends Person{ //Teache

试图解决psvm中的错误,老实说,我不知道什么地方出了问题,也不知道谷歌对此有何看法。 它不会让我在没有更多文字的情况下发布这篇文章,但我诚实地说,我不知道这个程序有什么问题,无法提供更多细节

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);