Книга: Основы программирования на Java
7.15. Статические методы
7.15. Статические методы
Иногда требуется создать метод, который можно было бы использовать вне контекста какого-либо объекта его класса. Так же, как в случае main, все, что требуется для создания такого метода — указать при его объявлении модификатор типа static. Статические методы могут непосредственно обращаться только к другим статическим методам, в них ни в каком виде не допускается использование ссылок this и super. Переменные также могут иметь тип static, они подобны глобальным переменным, то есть доступны из любого места кода. Внутри статических методов недопустимы ссылки на переменные представителей. Ниже приведен пример класса, у которого есть статические переменные, статический метод и статический блок инициализации.
class Static {
static int а = 3;
static int b;
static void method(int x) {
System.out.println("x =” + x);
System.out.println("a =” + a);
System.out.println("b = " + b);
}
static {
System.out.println("Статический блок инициализации");
b = а * 4;
}
public static void main(String args[]) {
method(42);
}
}
Результат запуска этой программы:
х = 42
а = 3
b = 12
В следующем примере мы создали класс со статическим методом и несколькими статическими переменными. Второй класс может вызывать статический метод по имени и ссылаться на статические переменные непосредственно через имя класса.
class StaticClass {
static int a = 42;
static int b = 99;
static void callme() {
System.out.println("a =” + a);
}
}
class StaticByName {
public static void main(String args[]) {
StaticClass.callme();
System.out.println("b =” + StaticClass.b);
}
}
А вот и результат запуска этой программы:
а = 42
b = 99
- 7.1. Переменные класса
- 7.2. Оператор new
- 7.3. Объявление методов
- 7.4. Вызов метода
- 7.5. Скрытие переменных
- 7.6. Конструкторы
- 7.7. Совмещение методов
- 7.8. Ссылка this
- 7.9. Наследование
- 7.10. Ссылка super
- 7.11. Замещение методов
- 7.12. Динамическое назначение методов
- 7.13. Директива final
- 7.14. Деструкторы
- 7.15. Статические методы
- 7.16. Абстрактные классы
- Статические классы
- Статические члены
- Статические данные, формы и CGI-сценарии
- Статические и динамические библиотеки
- Статические параметры
- 8.1. Статические библиотеки
- Лекция 7. Статические структуры: классы
- Статические данные
- Статические фильтры
- Статические методы
- Статические массивы
- Статические конструкторы