쌓고 쌓다

[JAVA] 객체 배열 본문

프로그래밍/java

[JAVA] 객체 배열

승민아 2021. 12. 21. 19:27

일단 먼저 아래의 코드를 한번 쭉 보자.


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