Консультация № 179939
15.09.2010, 21:01
0.00 руб.
0 2 2
Здравствуйте, эксперты. У меня к вам 2 вопроса по поводу new.

1. Зачем надо использовать new, и чем отличается
String person1 = "Boris";
от
String person2 = new String("Anna");

2. Почему в данном массиве нужно использовать new для массива и для каждого конкретного элемента?

Код:
class person {
person (String) {...}
void SetName(String) {...}
...
}

// Program:
{
person workers[] = new person[100];

for(int i=0; i<100; i++)
person[i] = new person(name); // Почему без new не работает? (person[i].SetName(name);)
}


Спасибо.

Обсуждение

Неизвестный
16.09.2010, 09:27
общий
это ответ
Здравствуйте, Иванов Андрей Владимирович.

вкратце суть заключается в том, что при помощи ключевого слова new объявляется экземпляр класса в вашем случае person (2й пример) или стандартного класса String (person2 = new String("Anna");).

Стандартные классы (такие, как String) - это в объектной модели документа аналог традиционного строчного типа переменной.

но при помощи new также объявляются экземпляры пользовательских классов (напр. class person {...)
3
Неизвестный
17.09.2010, 16:14
общий
это ответ
Здравствуйте, Иванов Андрей Владимирович.
Давайте разбираться по частям:
1) Когда вы пишете String person1 = "Boris"; механизм Java автоматически создает объект типа String (заменяет код на String person1 = new String("Boris");). В данном случае 2 записи по функционированию не отличаются. Оператор new вообще нужен для создания объекта класса (выделения памяти под объект).
2) Здесь вопрос немного перекликается с первым:
Для массива необходимо использовать new, т.к. массив в Java это объект. Точно по той же причине необходимо использовать new для создание элементов массива (person должен быть объектом).
Форма ответа