쌓고 쌓다
[JAVA] 객체 배열 본문
일단 먼저 아래의 코드를 한번 쭉 보자.
class Person {
public String name;
public int age;
public Person(String name, int age)
{
this.name = name;
this.age = age;
}
public void ShowInformation()
{
System.out.println(name + "," + age);
}
}
public class Main {
public static void main(String[] args) {
Person []person;
person = new Person[5];
for(int i=0;i<person.length;i++)
person[i] = new Person("사람"+i,i);
for(int i=0;i<person.length;i++)
person[i].ShowInformation();
}
}
배열에 대한 레퍼런스 선언
먼저 객체 Person의 배열에 대한 레퍼런스를 아래와 같이 선언한다.
Person []person ;
Person [5]person; // 컴파일 에러 ( 틀린 선언 )
이는 객체 Person의 배열을 가리키는 레퍼런스일 뿐
절대 원소의 개수를 선언해선 안된다.
여기까지의 상황은 아래 그림과 같다.
그저 Person 배열에 대한 레퍼런스만 생긴 것뿐이다.
레퍼런스 배열 생성
위에서 배열에 대한 레퍼런스를 선언했다. 이제는 그 레퍼런스가 Person 레퍼런스 배열을 가리키게 한다.
아래와 같이 Person 레퍼런스의 배열을 생성한다.
person = new Person[5];
여기까지의 그림은 아래와 같다.
person 레퍼런스가 person배열을 가리키는 꼴이다.
각 레퍼런스에 객체 생성
for(int i=0;i<person.length;i++)
person[i] = new Person("사람"+i,i);
각 person[i] 번째마다 Person 객체를 생성하여 레퍼런스가 객체를 가리키게 만든다.
아래와 같이 그림이 완성된다.
코드 실행 결과
'프로그래밍 > java' 카테고리의 다른 글
[JAVA] 함수(메소드) 오버로딩 (0) | 2021.12.22 |
---|---|
[JAVA] 함수(메소드)의 매개변수 (0) | 2021.12.21 |
[JAVA] this 와 this() (0) | 2021.12.21 |
[JAVA] 생성자 (0) | 2021.12.20 |
[JAVA] 클래스와 객체 (0) | 2021.12.20 |
Comments