[문제] 여러명의 회원 정보를 전달받고, 출력하는 메소드 선언하기
실행예)
------------
HONG
010-1234-1234
20세
------------
PARK
010-1111-2222
25세
------------
CHOI
010-5432-4321
22세
1. main() 메소드가 있는 실행 클래스
2. 사용자 정의 자료형 Member 클래스
3. 출력용 클래스 세 클래스로 나눠서 작성
package com.exam002;
public class Main {
public static void main(String[] args) {
//실행 클래스
//Member 클래스를 사용하기 위해 new연산자를 이용해 객체(instance) 생성
Member m1 = new Member();
//setter 메소드를 이용해 해당 인스턴스 변수(필드)에 값을 넣어준다.
m1.setName("고길동");
m1.setAge(45);
m1.setPhoneNum("010-0000-0000");
//마찬가지로 다른 Member 객체(instance)를 생성해서 값을 넣어주자
Member m2 = new Member();
Member m3 = new Member();
m2.setName("김둘리");
m2.setAge(100);
m2.setPhoneNum("010-1234-5678");
m3.setName("고희동");
m3.setAge(3);
m3.setPhoneNum("010-9999-9999");
//Member배열에 각각의 객체(instance) m1, m2, m3를 넣어준다.
Member[] members = new Member[3]; //크기가 3인 Member자료형(사용자정의자료형) 배열을 선언한다.
members[0] = m1;
members[1] = m2;
members[2] = m3;
//출력
Test t = new Test();
t.printMembers(members); //매개변수로 사용자정의자료형인 Member배열을 넘겨준다.
}
}
package com.exam002;
public class Member {
//자료형 클래스 : 자료를 저장하는 Member 클래스
//필드 field
private String name;
private int age;
private String phoneNum;
//getter, setter 메소드 - 다른 클래스에서도 접근할 수 있도록 접근제한자는 public
//getName 메소드를 다른 곳에서 호출하면 이 클래스의 필드의 name변수에 저장된 값을 돌려준다.
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return this.age;
}
public void setAge(int age) {
this.age = age;
}
public String getPhoneNum() {
return this.phoneNum;
}
public void setPhoneNum(String phoneNum) {
this.phoneNum = phoneNum;
}
}
package com.exam002;
public class Test {
//액션 클래스 - 출력용 메서드 작성
//매개변수로 배열을 받아서 출력하는 형태로 작성
public void printMembers(Member[] members) {
//향상된 for문(Enhanced for loop) 사용
//배열 members에 들어있는 값을 처음부터 끝까지 차례차례 하나씩 꺼내서 선언된 변수에 m에 담아서 출력한다.
//주의 : 배열에서 사용. 요소를 참조할 때만 사용하는 것이 좋으며, 요소의 값을 변경하는 작업에는 적합하지 않다.
for(Member m : members) {
System.out.println("------------");
System.out.println(m.getName());
System.out.println(m.getAge()+"세");
System.out.println(m.getPhoneNum());
}
}
}
실행 결과
------------
고길동
45세
010-0000-0000
------------
김둘리
100세
010-1234-5678
------------
고희동
3세
010-9999-9999