头一页Java第192页(混合消息)

头一页Java第192页(混合消息),java,Java,我正在尝试一个来自Head First Java的示例问题: 我在netbeans上输入了它。创建3个类,分别为classA、classB、classC,并将Main方法创建为混合类。在课堂上,我发现了一个错误,有人能解释一下为什么会发生这种情况以及如何解决它吗 public class classA { int ivar =7; void m1(){ System.out.println("A's

我正在尝试一个来自Head First Java的示例问题:

我在netbeans上输入了它。创建3个类,分别为classA、classB、classC,并将Main方法创建为混合类。在课堂上,我发现了一个错误,有人能解释一下为什么会发生这种情况以及如何解决它吗

        public class classA {
            int ivar =7;
            void m1(){
                System.out.println("A's m1, ");
            }

            void m2(){
                System.out.println("A's m2, "); }

            void m3(){
                System.out.println("A's m3, ");
            }
        }

    public class classB extends classA {
        void m1(){
            System.out.println("B's m1, ");
        }

    }

    public class classC extends classB {
        void m3(){
            System.out.println("C's m3, "+(ivar + 6));}

        }

public class Mixed2 {
    public static void main(String[] args) {
        a=new A(); 
//Error Cant find symbol,Symbol:Variable a     location:class mixed 2

       b=new B(); //Same error above and below
        c=new C();
        a2=new C();
    }

}

是的,你可以在一个类中键入所有内容。 请看一看下面的代码。由于您仍在学习最好的代码,您可以按原样键入代码,而无需尝试其他方法,这些方法可以在您掌握该语言后进行。学习愉快

public class mixedsample {

    public static void main(String[] args) {
        A a=new A();
        B b=new B();
        C c=new C();
        A a2=new C();

      /*  b.m1();
          c.m2();
          a.m3();
      Answer=B's,m1 ,A's,m2 ,A's,m3*/

     /*  c.m1();
       c.m2();
       c.m3();
A's,m1 ,A's,m2 ,A's,m3 */

     /* a.m1();
     b.m2();
     c.m3();
A's,m1 ,A's,m2 ,A's,m3 */

   /*  a2.m1();
     a2.m2();
     a2.m3();

A's,m1A's,m2 ,A's,m3  */




    }
}

    class A{
        int ivar=7;
        void m1(){
            System.out.println("A's,m1 ");
        }

        void m2(){
            System.out.println("A's,m2 ");

        }

        void m3(){
            System.out.println("A's,m3 ");

        }
    }

    class B extends A {
    void m1(){
            System.out.println("B's,m1 ");

    }
    }
    class C extends B{
    void m1(){
            System.out.println("A's,m1 ");

}
    }
当你说
a=newa()这意味着引用变量
a
已经声明,您现在正在为其分配新的“a”对象。要声明变量,需要给它一个类型和名称

//you can declare the variable and assign it a reference later like this
A a;
a = new A();

//or you could initialize it all in one line
A a = new A();

最有可能的是
A类
应该是
A类
A=new A()
应该是
A=new A()如果有疑问,请复制问题中的代码。没有必要有创造性地写一些非常不同的东西,因为这只会在你学习时引入错误。你不仅应该写相同的代码,我建议你尝试使用相同的格式,即空格,使代码更可读,更容易检查它是否相同。@PeterLawrey非常感谢你的耐心和时间!