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