[문제] 여러명의 회원 정보를 전달받고, 출력하는 메소드 선언하기
실행예)
------------
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