밑의 참조 배열에 관한 질문 답변에 조금.. 이해가 안가서 다시 질문해요 ㅠㅠ.

이런식으로 Product라는 클래스를 만들고

컬렉션을 이용해서 products 변수를 만들어서 그 안의 객체를 생성해서 넣었습니다.
그리고 또 다른 productTest라는 변수를 만들어서 이번에 products의 값들을 new ArrayList를 통해서 값을 전달했다고 한다면
productTest의 배열의 첫번째 인덱스 값이 products의 첫번째 인덱스 값을 가리키는 것과 같은거 아닌가요?
그렇게 된다면 productTest에서 값을 수정한다면 원본 데이터 값에도 영향을 받아야 하므로 products.get(0).getName() 값도 결국 "테스트제품"으로 바꿔져야 하는데

원본 데이터는 영향을 받지 않더라구요... ㅠㅠ
왜 이런건지 잘 모르겠습니다..
참조 배열 안에 있는 값도 결국 객체의 메모리 주소값을 가리키게 된다면, 새로운 배열을 만들어서 값을 복사해서 대입하게 되더라도 해당 객체를 가리키는 메모리 주소값을 접근하는 것이 하나 더 생기는거 아닌가요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
질문하신 내용과 유사한 상황에 대한 설명이 담긴 답변 URL을 찾았습니다. 참조 배열과 객체 생성에 대한 궁금증을 가지고 계시는데요, 아래 링크에서 강사님이 직접 답변해주신 내용을 참고하시면 될 것 같습니다.
- 질문 제목: 객체를 따로 생성해주는 이유
- 링크: 객체를 따로 생성해주는 이유
- 이미지 URL:

답변 내용을 요약하자면, 배열을 생성한 것은 참조를 위한 공간을 만든 것이고, 실제 객체를 생성해서 참조값을 배열에 넣어주어야 각 인덱스에 대한 실제 객체에 접근할 수 있습니다. 배열에 객체를 할당하지 않으면 단순히 빈 참조가 됩니다.
이해가 되셨는지 모르겠지만, 링크에서 더 자세한 설명을 확인하시면 좋을 것 같습니다.
질문있습니다
0
30
1
1번 문제 질문입니다.
0
35
1
음악플레이어 문제 중 코드질문
0
28
1
9장 상속 문제와 풀이 질문
0
39
1
강의 자료에 사소한 오타가 있습니다.
0
50
2
매서드 참조값 반환??
0
67
1
접근제어자 - 쇼핑카트 문제에서 상품출력 부분 메서드
0
72
1
자바 기본편 - .(dot)에 관한 질문입니다!
0
85
1
공부방법
0
77
2
상속관계에서 멤버 변수는 오버라이딩 되는 개념이 아닌가요?
0
82
1
static method 질문
0
67
1
캡슐화 문제풀이 ShoppingCart 요구사항에 문제가 있어보입니다. 피드백 주세요
0
98
1
Method1에서 Student 객체
0
74
1
3강 18. null 질문
0
69
1
this 와 super의 호출 순서는 부모-자식관계 떄문만인가요?
0
77
1
팩토리 메서드 패턴과 일반 생성자 사용의 장단점
0
97
1
문의
0
104
1
9장 상속 문제와 풀이 부분 궁금한게 있어서 질문드립니다
0
90
1
상속과 그에 따른 메모리 구조 질문
0
62
1
call메소드에서 멤버에 접근하는 방식을 이해 못 했습니다
0
74
1
수강기한
0
136
1
기본편 객체지향 프로그래밍에 대한 정의
0
88
1
섹션10 상속 메모리 구조 및 문제 관련 질문
0
87
1
추가 지식 학습
0
153
2





