package com.javarush.task.pro.task11.task1132;
import java.util.Random;
public class Cosmoport {
private static RoboZombie[] roboZombies = RoboZombieFactory.produce();
public static class Werehouse {
//Он же приватный
private static RoboZombie[] roboZombies = RoboZombieFactory.produce();
}
public static class RoboZombieFactory {
public static RoboZombie[] produce() {
RoboZombie[] army = new RoboZombie[new Random().nextInt(100)];
for (int i = 0; i < army.length; i++) {
army[i] = new RoboZombie();
}
return army;
}
}
public static class UltraMetal {
public static void play() {
for (RoboZombie roboZombie : Solution.roboZombies) {
roboZombie.uninstallBugs();
}
for (RoboZombie roboZombie : Cosmoport.roboZombies){
roboZombie.uninstallBugs();
}
//Как это работает?
for (RoboZombie roboZombie : Werehouse.roboZombies){
roboZombie.uninstallBugs();
} //Как это работает?
}
}
}
Gans Electro
50 уровень
Как мы достаем через один внутренний класс, приватную переменную другого внутреннего класса?
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Алексей
28 сентября 2022, 17:12
в цикле for (RoboZombie roboZombie : Cosmoport.roboZombies){
roboZombie.uninstallBugs();
ты создаешь объект-переменную roboZombie типа RoboZombie для итерации массива roboZombies из класса Cosmoport.
а сама переменная позволяет вызвать метод uninstallBugs() из соответствующего класса
0
Стас Пасинков Software Developer в Zipy Master
27 сентября 2022, 08:46полезный
а зачем, по-вашему, делать внутренние/вложенные классы, когда можно их спокойно сделать в отдельном файле?
зачем тогда делают внутренние/вложенные? в чем преимущество? :)
+1
даня радаев
26 сентября 2022, 17:14решение
почитай еще раз про public, private. Ты к private можешь обращаться из любой точки в общем классе, а вот если создашь класс за пределами этого класса (отдельный), уже нужно геттеры и сеттеры
+2