Статические и экземплярные методы
Разберитесь, когда использовать статические методы и методы экземпляра и чем отличаются вызовы.
«Статические и экземплярные методы» — бесплатный урок Java Academy на CoddyKit. Это урок 2 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 3 уроков всего.
Что означает static
Идея: статические члены принадлежат классу. Экземплярные члены принадлежат каждому объекту.
Члены экземпляра
Методы экземпляра используют состояние конкретного объекта. Вызывайте их для переменных, например user.login().
Статические члены
Статические методы и поля являются общими. Вызывайте их через имя класса, например Math.max(a, b).
Выбор между static и экземпляром
Выбирайте экземплярный метод, когда поведение зависит от состояния объекта. Выбирайте статический метод для чистых утилит или счётчиков, общих для класса.
Распространённые ошибки
Не используйте поля экземпляра в статическом методе. Не выбирайте статический метод там, где требуется состояние конкретного объекта.
Демонстрация: static и экземпляр
Запустите программу, чтобы увидеть вызовы экземплярных методов для объектов и статические вызовы через класс. Счётчик является общим.
public class Main {
public static void main(String[] args) {
// Two Person objects hold different names
Person a = new Person("Ada");
Person b = new Person("Bob");
// Instance method: needs an object
a.greet();
b.greet();
// Static method/field: belong to class Utils
int s = Utils.add(7, 5); // pure function
System.out.println("sum = " + s);
Utils.bumpCounter();
Utils.bumpCounter();
System.out.println("counter = " + Utils.counter); // shared across all
}
static class Person {
private String name;
Person(String name) { this.name = name; }
void greet() {
System.out.println("Hello, " + name + "!");
}
}
static class Utils {
static int counter = 0; // static field (shared)
static int add(int x, int y) { // static method (pure)
return x + y;
}
static void bumpCounter() { // static method (mutates shared)
counter = counter + 1;
}
}
}
Проверьте понимание
Быстрая проверка: какой вызов работает без предварительного создания объекта?
Повторение
Повторение: static означает уровень класса и общее использование. Экземплярный метод означает поведение и состояние конкретного объекта.
Часто задаваемые вопросы
Урок «Статические и экземплярные методы» бесплатный?
Да — полный текст урока «Статические и экземплярные методы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 3 уроков всего.
Чему я научусь в уроке «Статические и экземплярные методы»?
Разберитесь, когда использовать статические методы и методы экземпляра и чем отличаются вызовы. Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Java Academy?
Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 3.
Сколько времени занимает урок «Статические и экземплярные методы»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Java Academy?
Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Передача по значению в Java
- Статические и экземплярные методы
- Разбиение методов и чистый код