undefined

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

Java Syntax
6 уровень , 7 лекция
Открыта

— Кроме статических методов есть ещё и статические классы. Что это такое мы рассмотрим в будущем, я лишь покажу пример, что такое может быть:

Пример
public class StaticClassExample
{
    private static int catCount = 0;

    public static void main(String[] args) throws Exception
    {
        Cat vaska = new Cat("Bella");
        Cat murka = new Cat("Tiger");

        System.out.println("Cat count " + catCount);
    }
    
    public static class Cat
    {
        private String name;

        public Cat(String name)
        {
            this.name = name;
            StaticClassExample.catCount++;
        }
    }

}
undefined
2
Задача
Java Syntax,  6 уровень,  7 лекция
Недоступна
Набираем код Ӏ Java Syntax: 6 уровень, 7 лекция
Java Syntax: 6 уровень, 7 лекция. Внимание! Объявляется набор кода на JavaRush. Для этого включите режим повышенной внимательности, расслабьте пальцы, читайте код и… набирайте его в соответствующем окошке. Набор кода — вовсе не бесполезное занятие, как может показаться на первый взгляд: благодаря ему новичок привыкает к синтаксису и запоминает его (современные IDE редко дают ему это сделать).

— Объектов класса Cat можно создавать сколько угодно. В отличие от, например, статической переменной, которая существует в единственном экземпляре.

— Основной смысл модификатора static перед объявлением класса — это регулирование отношения класса Cat к классу StaticClassExample. Смысл примерно такой: класс Cat не привязан к объектам класса StaticClassExample, и не может обращаться к обычным (нестатическим) переменным класса StaticClassExample.

— Значит, я могу создавать классы внутри других классов?

— Да. Java такое позволяет. Не слишком задумывайся об этом сейчас. В будущем я объясню еще некоторые вещи, и все станет немного проще.

— Надеюсь.

Комментарии (162)
Чтобы просмотреть все комментарии или оставить свой,
перейдите в полную версию
Alexey 9 уровень, Ярославль
28 января 2021
https://youtu.be/nbqgPwZJqU4 В этом видео наглядно показано как работают статические методы и статические переменные
Komarov Anton 8 уровень, Самара
16 января 2021
Если вы как и я поняли лишь поверхностно и думаете, что забудете это на следующий же день, то вот вам краткое пояснение (старичков и старожил прошу поправить, если выражусь некорректно) Статический метод видит ТОЛЬКО статические переменные/объекты/поля и пр. Нестатический метод видит любые(в том числе и статические) переменные/объекты/поля и пр. Так же статическая переменная объявленная в классе будет неизменна для всех объектов этого класса. То есть public static int age = 1; //объявили в классе Cat Теперь age будет всегда являться единицей для каждого нового котика в классе Cat. прошу поправить, если не прав.
Максим 27 уровень, Санкт-Петербург
8 января 2021
Хм. Господа, вопрос. А разве законно через:

StaticClassExample.catCount++;
...обращение напрямую инкрементировать котиков? У них же модификатор доступа private.
Roma Kuzmin 8 уровень
31 декабря 2020
нифига сибе код с размером до луны и за это 2 какашки я думаю что за такие мучения нужно поставить 4 да еще и на телефоне писать.
Heinrich 14 уровень
25 ноября 2020
Слишком большое внимание к котам в этом проекте (Java Rush). Заметил, что как начал заниматься, то начал смотреть на своего кота... скажем, иначе что ли. Странно. Недавно у него началось половое обострение и он оставил столько ссылок на свои объекты по дому, что квартиру пришлось проветривать кргулые сутки и выкинуть часть мебели.
Сергей Шереметя 7 уровень, Днепр
10 ноября 2020
Я так понял, что с помощью статического класса Сат, у нас ведётся подсчёт вновь созданных объектов в классе StaticClassExample, да? Так как этот статический класс и соответственно его методы принадлежат всем объектам класса StaticClassExample...
Sami 15 уровень, Москва
8 октября 2020
что такое ачивка?
Zhanna 20 уровень, Москва
26 августа 2020
🦜
Aleksei 35 уровень Expert
25 августа 2020
Не забудьте потом в резюме написать про свои выклянченные ачивки здесь. :)
Серега 19 уровень, Кривой Рог
16 августа 2020
https://www.youtube.com/playlist?list=PLyApprAtr5yjywFgRkxhfGfesgYoIhU8U