Повтарящи се имена на нови обекти
Здравейте,
Забелязах, че когато инстанцирам обекти, те трябва да имат различни имена.
package com.company;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Car> myList = new ArrayList<>();
//instantiate them manually
Car myCar = new Car();
//Car myCar = new Car(); //error
myList.add(myCar);
Car friendsCar = new Car(); //different names
myList.add(friendsCar);
Но, ако инстанцирам няколко обекта през напр. цикъл, то джава не вижда проблем. И в двата случая мога да ги добавя в списък без проблем.
//instantiate automatically
int count = 3;
for (int i = 0; i < count; i++) {
Car newCar = new Car(); //the same name
myList.add(newCar);
}
System.out.println("end");
}
}
Когато дебъгвам всичкия този код, за да видя как се пълни списъка, виждам нещо такова:
/*myList = {ArrayList@793} size = 5
0 = {Car@794}
1 = {Car@795}
2 = {Car@797}
3 = {Car@798}
4 = {Car@799}
*/
И първите два ръчно инстанцирани обекта са там, както и другите три, които създадох през цикъла. Интересното е че нямат имена. Та, въпросът ми е, какво се случва с имената на обектите в тези две ситуации?