首先阅读Java页面192(混合消息)

时间:2019-01-04 17:14:20

标签: java

我正在尝试从Head First Java中提出一个示例问题:

Question I am attempting

我在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();
    }

}

2 个答案:

答案 0 :(得分:0)

是的,您可以在一堂课中全部输入。 请看下面的代码。由于您仍在学习最好的代码,因此可以直接输入它,而不必尝试不同的操作,以后您可以熟练掌握该语言。学习愉快!

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

}
    }

答案 1 :(得分:0)

当您说a=new A();时,表示已经声明了引用变量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();