#java
#java
Вопрос:
У меня есть этот код здесь. Я продолжаю получать сообщение об ошибке «недопустимое объявление метода; требуется возвращаемый тип»
private class HighScoresWindow extends JWindow{
public saveWindow(JFrame parent){
super(parent);
setSize(300, 200);
setLocationRelativeTo(parent);
}
}
Что я здесь делаю не так?
Комментарии:
1. Конструктор должен иметь то же имя, что и класс, поэтому, если
saveWindow
он не предназначен для конструктора, добавьтеvoid
возвращаемый тип.public void saveWindow(JFrame parent)
2. О да, я просто тупой. Я забыл, что конструкторы должны совместно использовать имя класса. Спасибо
Ответ №1:
Конструктор должен иметь имя класса. Если у них нет общего имени, значит, это не конструктор, а метод.
И, конечно, методу нужен возвращаемый тип (void, int, String… или что-то еще).
Итак, в вашем коде saveWindow
метод не имеет того же имени, HighScoresWindow
что и класс, поэтому компилятор пытается читать как метод без возвращаемого типа.
Ответ №2:
Найдите правильный способ ниже:
private class HighScoresWindow extends JWindow{
// constructor
public HighScoresWindow(JFrame parent){
super(parent);
setSize(300, 200);
setLocationRelativeTo(parent);
}
// method returns nothing i.e. void
public void myMethod(){
}
// method returning a String
public String myMethod(){
return "Hello";
}
}
Комментарии:
1. Конструктор — это специальный метод: (1) Имя совпадает с именем класса (чувствительно к регистру) (2) Без какого-либо возвращаемого типа
Ответ №3:
конструктор должен иметь то же имя, что и класс. «saveWindow» не является конструктором, а является методом
Ответ №4:
ваш метод ничего не возвращает. т.Е. Возврата нет. Если это то, что вы намереваетесь добавить void
в объявление вашего метода
Комментарии:
1.
public saveWindow void
?? Конечно, это должна быть опечатка2. Да, я предполагаю, что это опечатка, но я просто тупой. Я забыл, что конструкторы должны были совместно использовать имя класса. Спасибо!