Почему выскакивает NullPointerException [ООП]? Есть код в 1-ом файле (Main.java)public void setGlory(long glory) { this.glory = glory; } и код во втором файлеMain m; public Bank() throws InterruptedException, IOException { this.glory = Main.getGlory(); System.out.println("Your balance is: $"+money); private void depositMoney() throws InterruptedException { for (int i = 0; i < 10; i++) { this.glory++; System.out.println("Your glory is: ★"+glory); Thread.sleep(1000); } m.setGlory(glory); } } После цикла for - выскакивает ошибка, не пойму, почему
Ошибка NullPointerException возникает потому, что вы не инициализировали переменную m типа Main. В конструкторе Bank() вы должны создать объект типа Main и присвоить его переменной m. В противном случае, когда вы вызываете метод setGlory() у переменной m, программа не знает, на каком объекте вызывать этот метод и поэтому возникает исключение NullPointerException.
Исправление:
Main m = new Main(); public Bank() throws InterruptedException, IOException { this.glory = Main.getGlory(); System.out.println("Your balance is: $"+money); } private void depositMoney() throws InterruptedException { for (int i = 0; i < 10; i++) { this.glory++; System.out.println("Your glory is: ★"+glory); Thread.sleep(1000); } m.setGlory(glory); }
Теперь, после создания объекта Main в конструкторе Bank(), вы можете использовать переменную m для вызова метода setGlory() без ошибки NullPointerException.
Ошибка NullPointerException возникает потому, что вы не инициализировали переменную m типа Main. В конструкторе Bank() вы должны создать объект типа Main и присвоить его переменной m. В противном случае, когда вы вызываете метод setGlory() у переменной m, программа не знает, на каком объекте вызывать этот метод и поэтому возникает исключение NullPointerException.
Исправление:
Main m = new Main();public Bank() throws InterruptedException, IOException
{
this.glory = Main.getGlory();
System.out.println("Your balance is: $"+money);
}
private void depositMoney() throws InterruptedException
{
for (int i = 0; i < 10; i++)
{
this.glory++;
System.out.println("Your glory is: ★"+glory);
Thread.sleep(1000);
}
m.setGlory(glory);
}
Теперь, после создания объекта Main в конструкторе Bank(), вы можете использовать переменную m для вызова метода setGlory() без ошибки NullPointerException.