В лекции сказано, что для использования статических переменных нужно писать еще и имя класс то есть в моем случае нужно было указать Cat.catCount++, а я указала просто catCount++ и компилятор съел. Задача прошла проверку. Почему???
package com.javarush.task.task06.task0607;
/*
Классовый счетчик
*/
public class Cat {
static int catCount = 0;
public Cat ()
{
catCount++;
}
public static void main(String[] args) {
}
}
Alina Aleksandrova
11 уровень
Объясните пожалуйста кто-нибудь
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Anonymous #1794442
21 октября 2018, 21:01
думаю, потому, что это статическая переменная того же класса
0
Anonymous #1384518Expert
21 октября 2018, 19:23решение
Если переменная принадлежит классу (то есть она static), то к ней можно обращаться:
• по её имени
• по составному имени (через точку вместе с именем класса)
Разрешены оба способа. Но способ с точкой придумали для тех случаев, когда есть разные переменные, но с одинаковым названием. Например, когда переменная метода перекрывает (имея больший приоритет) переменную класса:
А вот если она не static, а просто очередное поле для создаваемых экземпляров этого класса, тогда:
+12
Alina Aleksandrova
21 октября 2018, 23:23
Как доходчиво! Спасибо огромное! Я наконец-то это поняла! Ловите лучи добра <3
0
HectorRey
21 октября 2018, 19:02
Внутри класса не обязательно указывать this для не статических полей данного класса, и название самого класса или this для статических полей.
0
Alina Aleksandrova
21 октября 2018, 23:24
Спасибо большое
0