Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Классы Java: Core

Видео может быть заблокировано из-за расширений браузера. В статье вы найдете решение этой проблемы.

Существуют такие свойства, который присущи не конкретному объекту, а всему классу целиком. Рассмотрим такой объект, как денежная купюра (Money). Количество денег и валюта – это свойства конкретной купюры. А вот ставки для обмена не имеют отношение к конкретной купюре. Они определяют поведение всех денег в целом. Такие поля задаются при помощи модификатора static. Этот модификатор применяется к полю или методу и указывает, что поле или метод принадлежит всему классу.

Статические свойства

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

class Money {
    // Ставки принадлежат всему классу денег
    // Сделаем поле публичным
    public static int dollarToEuro = 0.7
}

Получить значение статического свойства можно, используя имя класса

int dollarsCount = 100;
int eurosCount = dollarsCount * Money.dollarToEuro;
System.out.println(eurosCount); // => 70

Статические методы

Статические свойства, так же как и методы, относятся ко всему классу в целом и могут использоваться для доступа к статическим свойствам.

class Money {
    // Добавим в класс счетчик, который будет считать общее количество купюр
    // Сделаем свойство приватным
    private static int counter = 0;

    private static int dollarToEuro = 0.7;

    // Добавим статические методы для доступа к данным

    // Метод для получения ставок обмена
    public static int getRate() {
        return dollarToEuro;
    }

    // Метод для получения количества купюр
    public static int getCounterValue() {
        return counter;
    }

    // Метод, увеличивающий значение счетчика купюр на 1
    public static void increaseCounter() {
        counter++;
    }
}

Так как свойства приватные, получить доступ к ним можно при помощи статических методов

int dollarsCount = 200;
// Используем статический метод
int rate = Money.getRate(); // 0.7
int eurosCount = dollarsCount * rate;
System.out.println(eurosCount); // => 140

При помощи статических методов можно также менять значение статических свойств

System.out.println(Money.getCounterValue()); // => 0
// Увеличиваем значение свойства
Money.increaseCounter();
System.out.println(Money.getCounterValue()); // => 1

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
900
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

  • 130 курсов, 2000+ часов теории
  • 900 практических заданий в браузере
  • 360 000 студентов
Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Изображение Тото

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