티스토리 뷰
객체 배열 == 참조변수 배열
Computer com1, com2, com3;
Computer[] comArr = new Computer[3]; // 길이가 3인 Computer타입의 참조변수 배열
컴퓨터 타입 참조변수 x 3
| ComputerArr | ComputerArr[0] | ComputerArr[1] | ComputerArr[2] |
| 0x100 | null | null | null |
| 0x100 |
// 객체를 생성해서 배열의 각 요소에 저장
computerArr[0] = new Computer();
computerArr[1] = new Computer();
computerArr[2] = new Computer();
해당 코드가 실행이 되면 객체가 새로 생성이 되고 배열의 요소에 각 객체의 주소들이 저장이 된다.
| ComputerArr | ComputerArr[0] | ComputerArr[1] | ComputerArr[2] |
| 0x100 | 0x200 | 0x300 |
0x400 |
위의 코드와 같은 기능을 하는 코드를 다음과 같이 작성할 수 있다.
Computer[] computeArr = {new Computer(), new Computer(), new Computer() };
Computer com1 = new Computer();
Computer com2 = new Computer();
Computer com3 = new Computer();
그림을 그려보면 다음과 같다.

객체 배열에서 주의해야 할 것은 단순히 객체 배열을 선언만 해놓고 객체를 사용하려고 할 때 발생한다.
위의 첫번째 라인의 코드는 단순히 객체 배열을 만든 것에 불과하기 때문이다.
따라서 참조변수 배열의 각 요소에 객체를 생성해서 할당을 시켜줘야하는 점을 잊지 말자~!
Computer[] computerArr = new Computer[3]; // 단순히 객체 변수 배열을 만듬
computerArr[0] = new Computer(); // 각각의 객체를 생성 -> 객체 사용 가능
computerArr[1] = new Computer(); // 각각의 객체를 생성 -> 객체 사용 가능
computerArr[2] = new Computer(); // 각각의 객체를 생성 -> 객체 사용 가능
'JAVA' 카테고리의 다른 글
| 출력 스트림 객체와 API (0) | 2021.02.28 |
|---|---|
| 배열 (0) | 2021.02.14 |
| 클래스의 정의 (0) | 2021.01.14 |