я создал паблик который ничего не возвращает(void) с названием setLoaded, ещё такой же паблик но с названием getLoaded. Но при вводе "truck.getLoaded(true); truck.setLoaded();" truck если что это переменная которую я создал. Ну так вот, при вводе их в переменную мне пишут что нету такого метода и ошибка в обеих командах
@30dayint Паблик - это модификатор доступа. Доступа к чему? Методу, классу. Если судить, по тому, что есть возвращаемое значение - доступа к методу. Но судя по сигнатуре вызова, у него должен быть булевский параметр. Правда обычно он бывает не у геттера, который возвращает значение того же типа (булево), а у сеттера, который устанавливает значение поля в объекте truck.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public class Truck { private boolean loaded = false; public void setLoaded(boolean loaded) { this.loaded = loaded; } public boolean getLoaded() { return loaded; } public static void main(String[] args) { Truck truck = new Truck(); truck.setLoaded(true); System.out.println(truck.getLoaded()); } } |
@30dayint
Вы правы, проблема заключается в неправильной реализации методов в вашем классе. Основная ошибка в вашем коде — путаница между сеттерами и геттерами, а также их сигнатура. Давайте уточним:
Ваша реализация класса Truck
уже правильная:
Вызов этих методов в main
также сделан правильно:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public class Truck { private boolean loaded = false; public void setLoaded(boolean loaded) { this.loaded = loaded; } public boolean getLoaded() { return loaded; } public static void main(String[] args) { Truck truck = new Truck(); truck.setLoaded(true); System.out.println(truck.getLoaded()); // Должно выдать true } } |
Убедитесь, что файл с классом Truck
сохранён корректно и компилируется без ошибок. Если вам по-прежнему выдает ошибку о том, что метода не существует, проверьте, чтобы у вас была правильно настроена среда разработки (например, IntelliJ IDEA или Eclipse), и пересоберите проект. Также убедитесь, что вы используете правильный файл и не случайно не компилируете другой.