참조형 타입으로 객체들의 주소값을 배열로 저장할 수 있다.
getter, setter 복습 겸 객체 배열 사용 예시
class Person1 {
private String name;
private int age;
Person1(){}
Person1(String name, int age){
this.name =name;
this.age =age;
}
public void setName(String name) {this.name =name;}
//다른 값으로 설정하는 getter
public String getName() {return name;}
//들어가 있는 값을 가져가서 사용하는 setter
public void setAge(int age) {this.age =age;}
public int getAge() {return age;}
}
public class ex2 {
public static void main(String[] args) {
//객체 배열 선언
Person1[] pa = new Person1[3];
pa[0] = new Person1("만두",20);
pa[1] = new Person1("돌짱",20);
pa[2] = new Person1("홍길동",20);
for(int i =0 ; i<pa.length;i++){
System.out.print(pa[i] + " / ");
//객체의 주소값을 출력
System.out.print(pa[i].getName());
//private인 name필드이므로 getName을 이용하여 출력한다.
System.out.println();
}
}
}
<위에서 사용한 class Person1을 이용한 또다른 class ex2 예시>
for문을 사용하여 객체 배열에 값을 넣을 수 있다.
Person1의 필드에 private 접근 제한이 없다면 pa[i].name의 방식으로 name값을 불러올 수 있다.
public class ex2 {
public static void main(String[] args) {
//객체 배열
Person1[] pa = new Person1[10];
for(int i =0 ; i<pa.length;i++){
pa[i] = new Person1(i +"번 후보자 ", i+20);
System.out.println(pa[i].getName() + " --> " + pa[i].getAge());
//private 선언이 없다면?
//System.out.println(pa[i].name + " --> " + pa[i].age);
//System.out.printf("%s의 나이는 %d살 입니다.%n",pa[i].name, pa[i].age);
}
}
}