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

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

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

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

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

set (int n, char s) {

      set (n); //Присвоить значение полю digit

      set (s); //Присвоить значение полю letter

      }

      // Метод без аргументов

      void set () {

      // Присваиваем значение 5 полю digit

      // и значение А полю letter

      set (5, «A»);

      }

      // Метод для отображения значений полей

      void show () {

      System.out.println («Поле digit: "+digit);

      System.out.println («Поле letter: "+letter);

      }

      }

      public class Listing6_4 {

      public static void main (String [] args) {

      // Объявляем первый объект класса MyClass

      MyClass objFirst=new MyClass ();

      // Объявляем второй объект класса MyClass

      MyClass objSecond=new MyClass ();

      // Присваиваем числовое значение полю

      // первого объекта

      objFirst.set (10);

      // Присваиваем символьное значение полю

      // первого объекта

      objFirst.set («F»);

      // Присваиваем значения по умолчанию полям

      // второго объекта

      objSecond.set ();

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

      System.out.println («Свойства первого объекта»);

      objFirst.show ();

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

      System.out.println (»\nСвойства второго объекта»);

      objSecond.show ();

      }

      }

      В этом примере мы описали метод с именем set () для присвоения значений полям объекта. Напомним, что такой метод принято называть «сеттер». Если в качестве аргумента сеттеру передано целое число, то он присваивает значение числовому полю. Если передано символьное значение, то оно присваивается символьному полю. Наконец, если переданы оба значения, то они присваиваются обоим полям в соответствии с их типом.

      Обратите внимание, как реализована обработка вызова сеттера без аргументов. Мы захотели, чтобы в этом случае полям были присвоены значения по умолчанию: целочисленное 5 и символьное «A». Поэтому внутри сеттера без аргументов вызывается сеттер с двумя аргументами. В свою очередь, внутри сеттера для двух аргументов поочередно вызываются сеттеры для целочисленного аргумента и символьного аргумента. Со стороны это выглядит так, словно метод несколько раз вызывает сам себя. Но вы уже знаете, что на самом деле это разные методы с одинаковым именем. Допустимость таких конструкций – достоинство языка Java, позволяющее писать мощный и легко читаемый код. В нашем примере вложенная структура вызовов выглядит излишней, потому что мы используем очень простые методы – казалось бы, проще присвоить значения полям непосредственно в вызванном сеттере. Но в реальном программировании, когда каждый метод состоит из сотен строк кода, намного выгоднее вызвать уже описанный и отлаженный метод внутри другого метода, чем дублировать описание.

      В главном классе программы мы создаем два объекта класса MyClass. Полям первого объекта мы присваиваем значения в явном виде. Полям второго объекта присваиваем значения по умолчанию. Затем мы выводим значения полей на печать.

      Что произойдет, если вы

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