Я пытаюсь сослаться на метод в другом классе и использовать его в операторе return в моем другом классе. На данный момент все, что я получаю, это следующая ошибка: на нестатический метод getBalance нельзя ссылаться из статического контекста. Любая помощь будет принята с благодарностью
public void bob()
{
return "Accountno.:" + super.toString() + Account.getBalance();
}
4 ответа
getBalance
— это метод экземпляра. Смысл метода в том, что он дает вам баланс для определенного объекта Account, поэтому вам нужен экземпляр Account, чтобы вызвать для него getBalance. Когда вы вызываете метод с предисловием имени класса, это то, что подразумевается под «статическим контекстом», это означает, что вы вызываете статический метод для класса.
Технически вызов конструктора и вызов метода getBalance для нового объекта, как показано в других сообщениях, будет работать, но не даст вам никаких полезных данных. Вам нужно выяснить, как получить желаемую учетную запись (например, с помощью запроса к базе данных).
Вы пытаетесь создать подкласс Account? Потому что метод bob очень похож на toString, который отлично смотрелся бы в Account. Если вы создаете подкласс учетной записи, вам не нужно предварять вызов getBalance Account.
, вместо этого вы можете использовать this.getBalance()
или просто getBalance
(потому что this
подразумевается ).
Account
(где простой this
не работает), вы можете написать Account.this.getBalance()
.
У вас должен быть экземпляр объекта для вызова getBalance()
. Вы звоните как статический метод. Это должно работать:
Account acc = new Account();
acc.getBalance();
Правильный способ сделать это - иметь экземпляр Account , account и call
Account account = new Account();
account.getBalance();
Или объявите метод getBalance статическим.
Вы пытаетесь вызвать нестатический метод, как если бы он был статическим. Предполагая, что у вас есть учетная запись класса, Account.getBalance() будет работать только для статического метода getBalance(). Вам нужен экземпляр Account для вызова нестатического метода getBalance().
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.