1:1 관계 클래스의 선언과 객체 생성
- 선언 방식
1) 종속될 클래스 선언
2) 포함할 클래스 선언
- 1:1 관계 예시
ex) 개인별 휴대폰, 학생과 성적표, 학생과 전공지도교수 등
public static void main(String[] args) {
HPerson h01 = new HPerson("홍길동");
h01.checkMyPocket(); // 할당된 값이 없기에 핸드폰이 없네요 출력
h01.buyPhone(new HandPhone01("010-1111-1111","Apple"));
h01.checkMyPocket(); // 할당된 값으로 보유한 핸드폰 정보 출력
}
class HandPhone{ // 종속될 클래스 선언
private String number;
private String compy;
public HandPhone(String number, String compy) {
this.number = number;
this.compy = compy;
}
public void info() {
System.out.println("#핸드폰 정보#");
System.out.println("번호:"+this.number);
System.out.println("제조사:"+this.compy);
}
}
class HPerson{ // 포함할 클래스 선언
private String name;
private HandPhone phone;
// 1:1관계 설정시, 필드로 객체를 선언하여 사용한다.
public HPerson(String name) {
this.name = name;
}
public void buyPhone(HandPhone phone) {
this.phone=phone;// 객체가 필드에 할당이 됨
}
public void checkMyPocket() {
System.out.println(name+" 주머니 속에 핸드폰을 확인합니다.");
// cf) 객체할당하는 기능메서드에서는 반드시 아래 조건 처리를 하여야NullPointException에러가 발생하지 않는다.
if(this.phone==null) { // 위 기능메서드(buyPhone)로 핸드폰이 할당되지 않음.(초기상태)
System.out.println("핸드폰이 없네요..?");
}else { // 핸드폰이 할당되어 있음 (this.phone != null)
this.phone.info();
}
}