Java выдаёт ошибку, потому что переменная b объявлена в классе demo как локальная переменная. Локальные переменные доступны только в том блоке кода, в котором они объявлены. В данном случае переменная b доступна только в методе display класса demo.
Для того чтобы переменная b была доступна вне класса demo, ее необходимо объявить как переменную экземпляра класса demo. Переменные экземпляра класса доступны всем методам класса, включая методы, которые объявлены в других классах.
Для того чтобы исправить ошибку, необходимо изменить объявление переменной b в классе demo следующим образом:
int b;
После этого переменная b будет доступна в любом методе класса demo, включая метод display.
Вот исправленный код:
class demoClass
{
int a = 1;
void func()
{
demo obj = new demo();
obj.display();
}
class demo
{
int b;
void display()
{
System.out.println("\na = " + a);
System.out.println("\nb = " + b);
}
}
void get()
{
System.out.println("\nb = " + b);
}
}
class Test
{
public static void main(String[] args)
{
demoClass obj = new demoClass();
obj.func();
obj.get();
}
}
При выполнении этого кода будет выведен следующий результат:
a = 1
b = 2
Как видите, переменная b доступна в методе get класса demoClass.
class demoClass
{
int a = 1;
void func()
{
demo obj = new demo();
obj.display();
}
class demo
{
int b = 2;
void display()
{
System.out.println("\na = " + a);
}
}
void get()
{
System.out.println("\nb = " + b);
}
}
class Test
{
public static void main(String[] args)
{
demoClass obj = new demoClass();
obj.func();
obj.get();
}
}