Конструкторы Java - PullRequest
       24

Конструкторы Java

28 голосов
/ 24 февраля 2009

Я пытаюсь научиться задавать конструкторы классов в Java. Я начинаю понимать, что они указывают типы переменных экземпляра объектов, созданных из этого класса. Они также могут быть использованы для установки начальных значений переменных экземпляра. Следующий пример взят из учебника по Java на веб-сайте Sun:

public Bicycle(int startCadence, int startSpeed, int startGear) {
    gear = startGear;
    cadence = startCadence;
    speed = startSpeed;
}

Где в исходном коде ваших классов вы должны поместить конструктор (ы)?

Являются ли эти аргументы именами переменных ?: (int startCadence, int startSpeed, int startGear) или являются именами переменных, cadence и speed?

В чем разница между (int startCadence, int startSpeed, int startGear) и передачей, каденцией и скоростью?

В том маловероятном случае, когда мой преподаватель или какой-либо администратор из Общественного колледжа Солт-Лейк-Сити когда-либо сталкивался с этим вопросом, позвольте мне ясно изложить свои намерения. Этот вопрос размещен в величайшем духе академической честности. Я задаю этот вопрос, чтобы обратиться за общими советами и помощью в понимании правильного использования языка программирования Java. Я никоим образом не использую работу других и представляю ее как свою собственную работу. Я использую ответы, представленные здесь, в качестве общей помощи в моем понимании. Я делаю всю свою работу и не копирую работы, предоставленные людьми, отвечающими на мой вопрос.

Ответы [ 11 ]

0 голосов
/ 24 февраля 2009

На самом деле аргументы конструктора не должны храниться как переменные-члены объекта. Вот пример:

class NumberAsString {

   private String numAsStr;

   public NumberAsString(double number) {
      this.numAsStr = Double.toString(number);
   }

}

В этом примере аргумент конструктора фактически нигде не хранится, но его значение необходимо для вычисления одного или нескольких значений переменных-членов.

Поведение, которое вы видели, когда все аргументы хранятся непосредственно как переменные-члены, довольно распространено. Особенно для определенных видов классов, которые просто предоставляют методы «getter» и «setter» для своих переменных-членов (без предоставления каких-либо функций вычисления или преобразования). В мире Java такие классы обычно называют «бобами». (Да, это очень глупое имя.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...