VITYUSHA
@VITYUSHA
Android Developer

Почему анонимный класс Computer не выводит переменную?

Почему анонимный класс Computer не выводит переменную ?
spoiler
//'main' method must be in a class 'Rextester'.
//Compiler version 1.8.0_111

import java.util.*;
import java.lang.*;

class Rextester
{  
    public static void main(String args[])
    {
        new Computer() {
            void is_i7_working() {
                i7.Start();
            }
        };
    }
}

class Computer {
    class Processor {
        
        boolean isWorking = true;
        
        void Start() {
            
         System.out.println(isWorking);
    }
        
       
}
 Processor i7 = new Processor();
}
  • Вопрос задан
  • 195 просмотров
Решения вопроса 1
Bavashi
@Bavashi
На мой взгляд, вы спутали анонимные классы с вложенными. В случае с последним можно "выводить переменную" например так:

new Computer().new Processor().Start();

А анонимные классы обычно реализуют интерфейсы. В вашем случае не совсем понятно зачем вы создаете объект класса Computer с не задекларированным методом void is_i7_working(). Попробуйте переписать так:
import java.util.*;
import java.lang.*;

class Rextester
{  
    public static void main(String args[])
    {
        new Computer().new Processor() {
            void Start() {
                System.out.println(isWorking);
            }
        }.Start();
    }
}

class Computer {
    class Processor {
        
        boolean isWorking = true;
        
        void Start() {
            
         System.out.println(isWorking);
    }
        
       
}
 Processor i7 = new Processor();
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы