Head First Java-страница 192 (смешанные сообщения)

Я пытаюсь задать примерный вопрос из Head First Java:

Head First Java-страница 192 (смешанные сообщения)

Я набрал его, как в 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();
    }

}

Скорее всего, class classA должен быть class A, а a = new A() должен быть A a = new A();.

Peter Lawrey 04.01.2019 18:18

Если сомневаетесь, скопируйте код из вопроса. Не нужно проявлять творческий подход и писать что-то совсем другое, поскольку это приведет к ошибкам только тогда, когда вы учитесь.

Peter Lawrey 04.01.2019 18:19

Вы не только должны писать один и тот же код, я предлагаю вам попробовать использовать то же форматирование, то есть пробелы, чтобы сделать код более читабельным и легче проверить, что он такой же.

Peter Lawrey 04.01.2019 18:20

@PeterLawrey Большое спасибо за терпение и время!

Raja Cholan 04.01.2019 18:29
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
4
175
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

да, вы можете набрать все это в одном классе. Пожалуйста, взгляните на приведенный ниже код. Поскольку вы все еще учитесь в лучшем виде, вы набираете его как есть, не пробуя ничего по-другому, что можно сделать позже, когда вы овладеете языком. Удачного изучения! .

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

Другие вопросы по теме