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

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

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

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

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

void showNumber () {

      System.out.println (number);

      }

      }

      public class Listing6_6 {

      public static void main (String [] args) {

      // прямое обращение к статическим методам

      // без создания объекта класса

      MyClass.showText ();

      MyClass.showNumber ();

      // прямое обращение к статическим полям

      // без создания объекта класса

      MyClass.number=15;

      MyClass. text=«Java»;

      // проверяем, изменились ли статические поля

      // после прямого обращения

      MyClass.showText ();

      MyClass.showNumber ();

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

      MyClass obj=new MyClass ();

      // обращаемся к статическим полям

      // в качестве полей объекта

      obj.showText ();

      obj.showNumber ();

      }

      }

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

      В главном классе мы обращаемся напрямую к статическим методам класса. Для этого указываем имя класса и через точку – имя статического метода, принадлежащего классу. Затем аналогичным способом обращаемся напрямую к статическим полям и присваиваем им новые значения. Чтобы убедиться, что значения полей изменились, вновь обращаемся к статическим методам вывода на печать.

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

      6.2.5 Закрытые члены класса

      Очевидно, что статические поля являются общими для любых объектов класса. Вы можете создать сколько угодно объектов класса, и все они будут обращаться к одним тем же статическим полям и методам класса. Если в процессе выполнения программы изменить значение статического поля, то изменение затронет все объекты и фрагменты кода, использующие это поле. С одной стороны, это может быть удобно, если вы используете статическое поле в качестве глобальной переменной. Но в остальных случаях ошибочное изменение содержимого статического поля может быть очень опасным и приводит к трудно локализуемым ошибкам. Не зря в редакторе среды NetBeans IDE каждое внешнее обращение к статическому полю помечается предупреждением (желтый треугольник с восклицательным знаком).

      Чтобы гарантированно предотвратить ошибочную модификацию значения статического поля, его объявляют закрытым при помощи ключевого слова private. Закрытые члены класса доступны только в теле класса, и к ним нет прямого доступа извне.

      Как обратиться к закрытому полю? Для этого необходимо описать в классе открытый статический метод и вызвать его как обычно, через точку после имени класса. Пример класса с закрытым статическим полем и открытым статическим методом приведен в листинге 6.7.

      Листинг 6.7 Пример класса с закрытым статическим полем

      class

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