보기보기 개발 블로그

eclipse / 자바 1대1 관계 클래스 본문

Java

eclipse / 자바 1대1 관계 클래스

bokboks 2023. 3. 25. 01:57

안녕하세요 

지난 포스팅에서 자바의 Final 을 알아본이후

이번에는 자바 1:1 관계클래스에 대해 알아보겠습니다.

 

 

eclipse / 자바 Final

안녕하세요 저번 포스팅에서 자바 Static 에 이어 이번엔 자바Final 에 대하여 알아보겠습니다. eclipse / 자바 Static 안녕하세요 지난 포스팅에서 자바ArrayList에 이어 이번에는 자바 Static에 대하여 알

stackbok.tistory.com


package javaexp.a07_multiObj;

public class A08_OneVsOne {
	public static void main(String[] args) {
		/*
		 # 1:1 관계 클래스 선언과 활용
		 1. 1:1 관계에 있는 경우는 현실에서도 많이 있을뿐만 아니라 실제 프로그래밍에서
		 	많이 발생한다.
		 	ex) 사람이 가지고 있는 핸드폰, 연필과 지우개, 학생과 성적표, 학생과 전공지도교수
		 		tv와 리모콘, 결혼할 커플(남/여)
		 2. 선언 방식
		 	1) 종속된 클래스를 선언(필드 메서드)
		 	2) 포함하는 클래스를 선언
		 */
		HPerson p01 = new HPerson("홍길동");
		p01.usingPhone();
		p01.buyPhone(new HandPhone("01088888888","삼성갤럭시",11000000));
		p01.usingPhone();
		
/*		ex) Hobby(취미명,비용,생활기간) : 생성자를 통해서 할당,
 * 		play() 취미내용 출력..
 * 	PlayMan(이름,hobby) - 생성자를 통해서 이름 할당.
//		choiceHobby 할당 처리,playHobby()
 * 	1) 2개 클래스 선언
 * 	2) 필드값 선언
 * -------------------------------
 * 	3) 생성자 선언 : 데이터를 초기화 처리
 * 	4) 기능메서드 선언 : 출력 메서드, Hobby를 할당할 메서드, @@가 취미생활이 없다/ 
 * 		@@가 취미생활이 @@@이다.
 * 	5) 기능메서드 내용 처리 및 출력
 */
		PlayMan pl = new PlayMan("홍길동");
		pl.playMyHobby();
		pl.choiceHobby(new Hobby("산책",2000,2));
		pl.playMyHobby();

		 
		 #1:1관련 추가연습예제를 통해 '종속객체'를 '할당'하고 내용을 출력처리 하는 연습
		 1.컴퓨터 (제조사,cpu)  vs 소유주(이름, 컴퓨터)
		 2.연필(종류, 제조사) VS 지우개(제조자,연필)
		 3.자동차(배기량,제조사) vs 소유주(이름,자동차)
		 */
	}
}
class PlayMan{
	private String name;
	private Hobby hb;
	public PlayMan(String name) {
		super();
		this.name = name;
	}
	public void choiceHobby(Hobby hb){
		this.hb = hb;		
	}
	public void playMyHobby() {
		System.out.println(name+"의 취미생활");
		if(hb==null) {
			System.out.println("아직 취미생활이없다");	
		}else {
			hb.play();	
		}
	}
}
class Hobby{//취미명 , 비용 ,생활기간
	//일반 객체의 필드값은 접근제어자를 private 
	private String name;
	private int price;
	private int time;
	public Hobby(String name,int price,int time) {
		super();
		this.name = name;
		this.price = price;
		this.time = time;
	}
	public void play() {
		System.out.println("#취미출력#");
		System.out.println("취미명:"+name);
		System.out.println("비용:"+price);
		System.out.println("생활기간:"+time);
	}
}
class HPerson{
	private String name;
	private HandPhone phone;
	//생성자를 통해서 이름을 할당.
	public HPerson(String name) {
		super();
		this.name = name;
	}
	public void buyPhone(HandPhone phone) {
		this.phone = phone;
	}
	public void usingPhone() {
		System.out.println(name+"님 핸드폰을 사용합니다.");
		if(phone ==null) {
			//phone 객체가 메모리로 들어 오지 않는 상황
			System.out.println("핸드폰을 소유하지 않았습니다.");
		}else {
			phone.showInfo();
		}
	}
}
class HandPhone{
	private String number;
	private String comp;
	private int price;
	public HandPhone(String number, String comp,int price) {
		super();
		this.number = number;
		this.comp = comp;
		this.price = price;
	}
	void showInfo() {
		System.out.println("핸드폰의 정보");
		System.out.println("번호"+number);
		System.out.println("제조사"+comp);
		System.out.println("구매가격"+price);
	}
}

이상으로 자바 1:1 관계 클래스의 선언과 활용에 대해 알아보았습니다

감사합니다.

'Java' 카테고리의 다른 글

eclipse / 자바 패키지  (0) 2023.03.25
eclipse / 자바 1대다 관계 클래스  (0) 2023.03.25
eclipse / 자바 Final  (0) 2023.03.23
eclipse / 자바 Static  (0) 2023.03.23
eclipse / 자바 ArrayList를 통한 배열 처리  (0) 2023.03.23