public class Solution {
public static void main(String[] args) {
}
public class Cat {
private String name;
private int age;
private int weight;
public Cat() {
}
public Cat(String name, int age, int weight) {
this.name = name;
this.age = age;
this.weight = weight;
}
}
}
Cat cat = new Cat(); же не работает
https://javarush.com/tasks/com.javarush.task.task11.task1106#discussion
Santa
25 уровень
Не понимаю как создать кота
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Santa
14 марта 2021, 14:09
Спасибо огромное за разъяснение
0
Игорь Full Stack Developer в IgorApplications
14 марта 2021, 13:55
Не заметил, что там есть конструктор без параметров,поэтому можно Cat cat = new Cat(); Ниже написанно, как нужно создавать, почему-то думал, что внутри метода класса Solution можно просто Cat cat = new Cat();
А не
+3
Justinian Judge в Mega City One Master
14 марта 2021, 14:09
насколько я помню, поправьте пожалуйста если ошибаюсь, конструктор объекта внутреннего класса первым параметром неявно получает ссылку this на внешний класс, поэтому нет,
Cat cat = new Cat(); нельзя, внутреннему классу нужна ссылка на экземпляр внешнего класса.
А вот если добавить ключевое слово static ->
public static class Cat {
То тогда можно создавать и
Cat cat = new Cat();
и
Solution.Cat cat = new Solution.Cat();
поскольку для статического класса не нужна ссылка на объект, и ему и так отлично.
А внутренним классам (нестатическим вложенным классам) нужна ссылка, поэтому варианты создания:
предпологают наличие экземпляра класса Solution 0
Stan Marsh
14 марта 2021, 12:57
Если я не ошибаюсь, то класс Cat - это внутренний non-static класс, а поэтому нельзя создать объект класса Cat без создания объекта класса Solution.
Либо можно забить и объявить класс Cat как static тогда с ним можно будет работать как с обычным классом.
П.С. Есть вероятность, что выше написан бред) +4
Игорь Full Stack Developer в IgorApplications
14 марта 2021, 12:13
Cat cat = new Cat(String name, int age, int weight);
Cat cat = new Cat("Вася", 11, 100);
0
Justinian Judge в Mega City One Master
14 марта 2021, 12:43
Попробуй в Идее запустить :)
+2