Если вы знакомы с C / C ++ , вы можете рассматривать ссылки на объекты Java как указатели на объекты (или указатели на структуры).Итак:
Person p = new Person();
p.setName("Helios");
- это:
- объявить указатель ap на структуру Person (в стеке)
- зарезервировать память и инициализировать структуру Person
- назначить свой адрес p
- выполнить метод setName для объекта, на который ссылается p
Поэтому, когда вы делаете:
Person[] ps = new Person[5];
youрезервируем массив из 5 ссылок на Person .Затем вам нужно будет создать каждого реального человека и присвоить каждую ссылку определенному месту в массиве.
Редактировать: (почти) версия C / C ++ предыдущего кода
class Person { ... };
typedef PersonStruct* Person; // I don't remember if this declaration is ok
Person p = new PersonStruct();
p -> setName(...);
Person[] ps = new Person[5];
// ps is a variable in the stack pointing to the array in the heap
// (being the array five references to the PersoStruct)
и вы могли бы сделать
ps[3] = p;