Валерий Станиславович Яценков

Java за неделю. Вводный курс


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

аргументами

      MyClass (int a, char b) {

      digit=a;

      letter=b;

      System.out.println («Вызван конструктор объекта с двумя аргументами.»);

      System.out.println («Полям присвоены значения "+digit+" и "+letter);

      }

      }

      public class Listing6_5 {

      public static void main (String [] args) {

      // Создаем первый объект класса MyClass

      // Вызывается конструктор без аргументов

      MyClass objFirst=new MyClass ();

      // Создаем второй объект класса MyClass

      // Вызывается конструктор с двумя аргументами

      MyClass objSecond=new MyClass (8, «B»);

      }

      }

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

      6.2.4 Статические поля и методы

      Когда мы создаем объект класса, то поля, описанные в классе, фактически превращаются в переменные объекта. Методы, описанные в классе, становятся методами объекта и имеют доступ к полям только «своего» объекта. Такие члены класса называют нестатическими.

      Но могут существовать и статические члены класса. Они являются «общими» для всех объектов класса и существуют, даже если не создан ни один объект. К статическому члену класса можно обращаться через объект, указав через точку после имени объекта имя статического члена. Но предпочтительным является прямое обращение через имя класса. При этом после имени класса через точку указывают имя вызываемого статического члена класса.

      При описании статического члена используется ключевое слово static. Статическое поле при необходимости можно инициализировать присвоением значения непосредственно в теле класса.

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

      В листинге 6.6 приведен пример описания класса со статическими членами и обращения к ним.

      Листинг 6.6 Пример класса со статическими членами

      class MyClass {

      // статическое числовое поле

      static int number=5;

      // статическое текстовое поле

      static String text=«Hello»;

      // статическй метод (вывод текста на печать)

      static void showText () {

      System.out.println (text);

      }

      // статический метод (вывод числа на печать)

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

      }

      }

      В данном