(task06.task0613 - Кот и статика)
Вопрос возник почему в этой задаче мой код не компелировался пока в конструкторе был аргумент int catCount?
Alexander Ponomarev
17 уровень
Почему без переменной в аргументе?
Решен
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia VolkovaJava Developer в DXCMaster
1 октября 2019, 17:40
Будет проще понять, если ты покажешь, как выглядел твой код
0
Alexander Ponomarev
1 октября 2019, 18:13
package com.javarush.task.task06.task0613;
/*
Кот и статика
*/
public class Solution {
public static void main(String[] args) {
for(int i = 0; i<10 ; i++){
Cat cat = new Cat();
}
System.out.println(Cat.catCount);// Выведи значение переменной catCount
}
public static class Cat {
public static int catCount;// Создай статическую переменную catCount
public Cat(){
this.catCount = catCount+1;// Создай конструктор
}
}
}
0
Ksenia VolkovaJava Developer в DXCMaster
1 октября 2019, 18:26
Ну, компилироваться-то этот код должен.
Хотя не совсем правильно обращаться к статической переменной через экземпляр класса (this.catCount)
Или ты там еще куда-то какой-то параметр добавлял?
0
Alexander Ponomarev
2 октября 2019, 09:42
это весь код. да он прошел проверку но я не пойму почему в конструкторе я не указываю аргумент, хотя раньше без него все не работало
0
Ksenia VolkovaJava Developer в DXCMaster
2 октября 2019, 10:04решение
Потому что в этом конструкторе не используются никакие дополнительные параметры, только статическая переменная catCount, к которой есть доступ у всех экземпляров класса Cat.
Этот конструктор просто добавляет единицу к этой переменной.
Если бы мы хотели, например, увеличивать catCount на некое число, передаваемое в виде параметра, то выглядело бы так:
+3
Alexander Ponomarev
2 октября 2019, 11:18
понял. спасибо
0