본문 바로가기

Java/본격 Java 퀴즈 기초

[Java] 사원정보 출력하기 (Composition(포함)관계 이용)

상속을 들어가기 전에 포함관계를 먼저 해보겠다.

사원정보를 출력하기 위해

먼저 주속 데이터를 받아오고 그 정보를 토대로 사원정보를 출력하는 프로그램을 작성해보겠다.

.

.

package Employee;

public class Address {
	String city, state, country;
	
	public Address(String city, String state, String country){
		this.city = city;
		this.state = state;
		this.country = country;
	}

	public String getCity() { return city; }
	public void setCity(String city) { this.city = city; }
	public String getState() { return state; }
	public void setState(String state) { this.state = state; }
	public String getCountry() { return country; }
	public void setCountry(String country) { this.country = country; }

	@Override
	public String toString() {
		return "Adress [city=" + city + ", state=" + state + ", country=" + country + "]";
	}
	
}

.

.

주소 데이터를 받아오는 클래스이다.

.

.

package Employee;

public class Employee {
	int id;
	String name;
	Address address;
	
	public Employee(int id, String name, Address address) {
		super();
		this.id = id;
		this.name = name;
		this.address = address;
	}
	
	public int getId() { return id; }
	public void setId(int id) { this.id = id; }
	public String getName() { return name; }
	public void setName(String name) { this.name = name; }
	public Address getAdress() { return address; }
	public void setAdress(Address adress) { this.address = adress; }
	
	@Override
	public String toString() {
		return "Employee [id=" + id + ", name=" + name + ", adress=" + address + "]";
	}
}

.

.

주소 클래스를 받아와서 사원 정보에 넣는 클래스이다.

.

.

package Employee;

public class TestEmployee {

	public static void main(String[] args) {
		Address addr1 = new Address("강남구", "서울시", "대한민국");
		Employee e1 = new Employee(111, "유관순", addr1);
		
		Employee e2 = new Employee(112, "홍길동", new Address("강남구", "서울시", "대한민국"));
		
		Address addr2 = new Address("고양시", "경기도", "대한민국");
		Employee e3 = new Employee(113, "신사임당", addr2);
		
		System.out.println("addr1 : " + addr1);
		System.out.println("e1 : " + e1);
		System.out.println("e2 : " + e2);
		System.out.println("e3 : " + e3);
		
	}

}

.

.

주소 인스턴스를 생성해서 따로 사원 인스턴스를 생성할 때 사용하거나

사원 인스턴스를 생성할 때 주소 인스턴스를 바로 생성해서 사용할 수도 있다.

.

.

728x90
반응형