Я правильно настраиваю этот статический метод? - PullRequest
0 голосов
/ 01 ноября 2011

Инструкции: напишите статический метод createAdult для Person, который возвращает специальный экземпляр этого класса. Экземпляр представляет собой общего взрослого и имеет имя «Взрослый» и возраст 21.

Персона - это имя класса name является строковой переменной private Возраст - это переменная типа int private

Это то, что я создал, это все, о чем он просит? Он просит больше, чем я предоставил?

public static void createAdult(String name, int age)
{
  name = "An Adult";
  age = 21;
}

Ответы [ 4 ]

4 голосов
/ 01 ноября 2011

Я не могу помочь вам закончить работу, поэтому позвольте мне объяснить.

Требования: -

  • возвращает специальный экземпляр этого класса.Как ваш метод возвращает что-нибудь?Если вы объявляете void, это означает, что ваш метод ничего не возвращает.

  • Экземпляр представляет имя и возраст, поэтому вы должны вернуть экземпляр этого класса в ваш статический метод.Создайте новый экземпляр с этими значениями.

2 голосов
/ 01 ноября 2011

Нет. Как указано в первой строке вашего вопроса, вы должны создать экземпляр класса (используя ключевое слово new), затем присвоить ему эти значения и вернуть его.

Скорее всего, найдется конструктор для Person, который будет делать то, что вы хотите, что-то вроде:

Person newPerson = new Person ("paxdiablo", 46)'; // A rare admission :-)

Статический метод не привязан к экземпляру, поэтому вы не можете установить поля объекта, если не создали его.

Эта страница охватывает создание объектов. На этой странице описываются фабричные методы (это то, что вы пытаетесь сделать здесь - «фабрика» - это устройство, способное создавать объекты по мере необходимости и возвращать их вам, в отличие от того, как вы сами их создаете. ).

Например, если вы посмотрите на вторую ссылку выше, вы найдете:

public static ComplexNumber valueOf (float aReal, float aImaginary) {
    return new ComplexNumber (aReal, aImaginary);
}

Это классический фабричный метод, статическая функция, которую вы можете вызвать с помощью:

ComplexNumber c = ComplexNumber.valueOf (0, 1); // sqrt(-1)

и это создаст объект по вашей спецификации.

0 голосов
/ 01 ноября 2011
  • Метод createAdult должен возвращать только экземпляр класса.
  • С void вы ничего не получите
  • Имя и возраст должны быть в классе, а не в методе
0 голосов
/ 01 ноября 2011

Если вы предоставили нам только код, то нет, это не сработает. Вы не можете назначить имя и возраст в вашем коде.

...