Программа выдает такую ошибку вот код
import Tree.Artefacts;
import Tree.Implement;
public class Main {
public static void main (String[] args){
Implement Ring_1 = new Implement();
Artefacts Ring_Art_1 = new Artefacts();
Ring_Art_1.name = "Ring Eye of Dragon";
Ring_Art_1.Type_Art = 1;
Ring_Art_1.Busy_Art =true;
Implement objectMethod = new Implement();
objectMethod.setArt ();
}
}> это то что лежит в классе Main
package Tree;
public class Implement {
int Place;
boolean Busy_Pl = false;
public Artefacts Ring_Art_1;
public void setArt (){
switch(Ring_Art_1.Type_Art){
case (1): {
System.out.println(Ring_Art_1.name);
break;
}
case (2): {
System.out.println(Ring_Art_1.Busy_Art);
break;
}
}
}
}>
это то, что лежит в классе Imlement.
В чем суть. Есть два класса в разных пакетах. В классе Implement есть функция с оператором switch. В зависимости от того, какое значение у параметра Ring_Art_1.Type_Art она выбирает один из вариантов вывода на экран. Но по каким то причинам она в место того значение которое я этому параметру назначаю в классе Main он (параметр) принимает значение null как я понимаю. Главным смыслом я ставлю вызвать метод в другом классе, который находится вне пакета того класса, в котором создана функция.
Sergey37rus
1 уровень
Помогите пожалуйста!
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Justinian Judge в Mega City One Master
28 ноября 2020, 20:59
то что ты назначаешь в классе Main, не выходит за пределы этого класса.
Есть такая штука, называется область видимости переменных.
у тебя в классе Implement есть переменная Ring_Art_1, вот ей и нужно присваивать значение. А то оно по умолчанию налл, вот программа и ругается.
Или передать в метод set в качестве параметра.
Первый вариант:
в таком виде должно заработать, к чему первая строка которую ты не используешь:
Implement Ring_1 = new Implement();
я не знаю, поэтому ее выбросил
второй вариант:
и в самом коде Implement:
но второй вариант вызывает вопросы (впрочем как и первый), причем здесь set, что он устанавливает. Но это тебе уже виднее что ты хочешь сделать.
Ответ на твой вопрос кратко - ты работаешь не с той переменной, поэтому она налл.
п.с. функции в джаве называются методами
+1
Sergey37rus
29 ноября 2020, 19:21
Спасибо, мне друг помог разобраться, все геттерами и сеттерами решилось. Ну и метод в main нужно делать а не в другом классе из другого пакета
0