[문제] 여러명의 회원 정보를 전달받고, 출력하는 메소드 선언하기

실행예) 

------------ 

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


+ Recent posts