Я не парень Java, таким образом, я спрашиваю меня, что это означает:
public Button(Light light) {
this.light = light;
}
Действительно ли Кнопка является методом? Я спрашиваю меня, потому что это берет входной свет параметра. Но если бы это был метод, почему это началось бы с прописной буквы и не имеет никакого типа возвращаемых данных?
Здесь прибывает полный пример:
public class Button {
private Light light;
public Button(Light light) {
this.light = light;
}
public void press() {
light.turnOn();
}
}
Я знаю, этот вопрос действительно тривиален. Однако я не имею никакого отношения к Java и не нашел описание для вещи Кнопки выше. Мне просто интересно.
Это вполне уместный вопрос.
То, что вы видите, это конструктор метода , который в основном имеет характеристики, которые вы только что упомянули:
Button
(Верхний регистр не является чем-то особенным, но по соглашению о кодировании, классы java должны начинаться с верхнего регистра, следовательно, конструктор тоже должен начинаться с верхнего регистра) И дополнительные обратите внимание на ваш опубликованный код.
Если вы не определяете конструктор, компилятор вставит для вас конструктор без аргументов:
Итак, это действительно:
public class Button {
// no constructor defined
// the compiler will create one for you with no parameters
}
.... later
Button button = new Button(); // <-- Using no arguments works.
Но если вы предоставите другой конструктор (как в вашем случае), вы можете ' t больше не использовать конструктор без аргументов.
public class Button(){
public Button( Light l ){
this.light = l;// etc
}
// etc. etc.
}
.... later
Button b = new Button(); // doesn't work, you have to use the constructor that uses a Light obj
Его конструктор .
Вы должны передать свет в качестве параметра при создании экземпляра класса.
Например,
Light l = new Light();
Button b = new Button(l);
b.press();
Это один из возможных конструкторов класса Button. Каждый оператор, который содержит имя класса и не имеет возвращаемого значения, является конструктором.
Вы можете определить несколько конструкторов, например, для различения количества и типа параметров, таких как:
public Button();
public Button(int i);
public Button(int i, int j);
public Button(String s,int i, double d);
и так далее.
Это конструктор для объекта Button.
Итак, когда вы пишете:
Button myButton = new Button(new Light());
Этот метод называется