Java за неделю. Вводный курс. Валерий Станиславович Яценков

Чтение книги онлайн.

Читать онлайн книгу Java за неделю. Вводный курс - Валерий Станиславович Яценков страница 30

Java за неделю. Вводный курс - Валерий Станиславович Яценков

Скачать книгу

style="font-size:15px;">      // выводим значения полей на печать

      System.out.println («Сработал конструктор суперкласса!»);

      }

      }

      // описание подкласса

      class MyChildClass extends MyParentClass {

      char letter;

      int digit;

      // конструктор подкласса

      MyChildClass (String text, int number, char letter, int digit) {

      // вызываем конструктор суперкласса

      super (text, number);

      this. letter=letter;

      this. digit=digit;

      System.out.println («Сработал конструктор подкласса!»);

      }

      // описание метода подкласса

      void show () {

      // Выводим на печать значения всех полей объекта

      // присвоенные конструктором подкласса

      System.out.println («text="+this. text);

      System.out.println("number="+this.number);

      System.out.println («letter="+this. letter);

      System.out.println («digit="+this. digit);

      }

      }

      public class Listing7_2 {

      public static void main (String [] args) {

      // создаем объект подкласса

      // и передаем аргументы в конструктор подкласса

      MyChildClass obj=new MyChildClass («Hello», 200,«S», 5);

      obj.show ();

      }

      }

      В описании родительского класса MyParentClass присутствует конструктор с двумя аргументами. Конструктор получает в виде аргументов строку и целое число, которые присваивает полям объекта.

      Отступление: ключевое слово this

      Ключевое слово this может использоваться, как ссылка на объект, из которого вызывается метод. Если this используется в конструкторе, то является ссылкой на создаваемый объект, или применяется при вызове одной версии конструктора из другой версии конструктора.

      В данной программе имена аргументов конструктора совпадают с именами полей класса. Аргументы методов и конструкторов являются локальными переменными. Если имя локальной переменной совпадает с именем поля класса, то по умолчанию считается, что речь идет о локальной переменной, а не о поле. Чтобы в такой ситуации обратиться к полю, нужно указать его полное имя, включая имя объекта через точку. Вместо указания полного имени объекта в конструкторах и методах применяют универсальное ключевое слово this («этот» – англ.) Вы не можете использовать в конструкторе или методе какое-то конкретное имя объекта. Ведь на основе класса и его конструктора может быть создано множество независимых объектов с разными именами. Поэтому применяется универсальная ссылка «этот», указывающая на объект, с которым программа работает в данный момент.

      Разумеется, имена аргументов конструкторов и методов класса могут не совпадать с именами полей. В таком случае можно обойтись без ключевого слова this. Но для улучшения читаемости программы имена аргументов часто делают совпадающими с именами полей. Это облегчает понимание того, каким полям суперкласса или подкласса мы передаем значения при вызове конструктора или метода. За такое удобство приходится платить обязательным использованием ключевого слова this.

      Конец ознакомительного

Скачать книгу