gwooden_코린이

java_tv만들기_221129(7일차) 본문

java/7일차

java_tv만들기_221129(7일차)

gwooden22 2022. 11. 29. 10:53
728x90
package TV만들기;

public class Main {

	public static void main(String[] args) {
		
		/** ==초기상태== **/
		
		//기본 생성자
		Tv lgTV = new Tv();
		
		//viewTv만 호출 해서 정보 확인해보기
		lgTV.viewTv(); //기본 상태 값 표시
		
		/** ==값 첫 번째 변경 == **/
		
		//전원켜기
		lgTV.setPower(true);
		lgTV.setChannel(500);
		System.out.println("--1--"); //구별하기 위해
		lgTV.viewTv(); //파워와 채널 변경후 다시 viewTv 불러왔을 때 변경 된 값 표시
		
		/** ==값 두 번째 변경 == **/
		
		//오버로딩 때문에 묶어둔것
		System.out.println("--2--"); //구별하기 위해
		lgTV.setChannel(222, true);
		lgTV.viewTv();
		
		System.out.println("--3--"); //구별하기 위해
		lgTV.setChannel(999, false);
		lgTV.viewTv();
		
		
		System.out.println("--4--"); //구별하기 위해
		lgTV.setVolume(50);
		lgTV.viewTv();
		
		/**
		 * 아래 생성자를 불러올려면 똑같이 값을 채워줘야 가능
		 * 
		 * Tv(String name) {
		super(false, 20, 15);
		this.name = name;
		isInternet = false;
		}
		 */
		
		
		System.out.println("--5--"); //구별하기 위해
		Tv myTv = new Tv("우리집");
		myTv.viewTv();
		
		
		
		
	}

}
이름 :LG TV
전원 :false
채널 :10
볼륨 :10
인터넷연결 :false
--1--
이름 :LG TV
전원 :true
채널 :500
볼륨 :10
인터넷연결 :false
--2--
인터넷 연결 성공
이름 :LG TV
전원 :true
채널 :500
볼륨 :10
인터넷연결 :true
--3--
채널이999로 변경
이름 :LG TV
전원 :true
채널 :999
볼륨 :10
인터넷연결 :false
--4--
이름 :LG TV
전원 :true
채널 :999
볼륨 :50
인터넷연결 :false
--5--
이름 :우리집
전원 :false
채널 :20
볼륨 :15
인터넷연결 :false

 

package TV만들기;

//자식 클래스

public class Tv extends PrototypeTv { //PrototypeTv 상속 받기
	
	String name;
	boolean isInternet;
	
	//기본 생성자
	Tv() {
		super();
		name = "LG TV";
		isInternet = false;
	}
	
	//name을 생성 받아서 만든 생성자 (매개변수)
	Tv(String name) {
		super(false, 20, 15);
		this.name = name;
		isInternet = false;
	}
	
	//메서드 생성           (매개변수)
	void setPower(boolean isPower) { //isPower를 전달 받게끔
		this.isPower = isPower;
	}
	
	//오버라이딩 (채널 관련)     (매개변수)
	public void setChannel(int cnl) {
		if(cnl >= 0 && cnl < 2000) {
			channel = cnl;
		} else {
			System.out.println("채널이 없습니다.");
		}
	}
	
	//오버로딩  (인터넷 관련)         (매개변수로 사용되는 것)
	public void setChannel(int cnl, boolean isInternet) {
		if(isInternet) {
			System.out.println("인터넷 연결 성공");
			this.isInternet = true;
		} else {
			this.isInternet = false;
			//채널 설정
			if(cnl >= 0 && cnl < 2000) {
				channel = cnl;
				System.out.println("채널이" + channel + "로 변경");
			} else {
				System.out.println("채널이 없습니다.");
			}
		}
	}
	
	//불륨 설정                        (매개변수)
	public void setVolume(int vol) {
		if(vol>=0 && vol<=100) {
			volume = vol;
		} else {
			System.out.println("볼륨 범위 벗어남[0-100");
		}
	}
	
	//정보 표시 (Main에서 출력하려면 필요한 코드)
	public void viewTv() {
		System.out.println("이름 :" + name);
		System.out.println("전원 :" + isPower); //보안할시 삼항연산자 사용 <--조건식? 참 : 거짓
		System.out.println("채널 :" + channel);
		System.out.println("볼륨 :" + volume);
		System.out.println("인터넷연결 :" + isInternet);
	}

}
package TV만들기;

//부모클래스

public class PrototypeTv {
	
	boolean isPower; //전원 on/off
	int channel; //채널
	int volume; //불륨
	
	public PrototypeTv() { //기본 값 , 기본 생성자 만들때는 수동 입력
		isPower = false;
		channel = 10;
		volume = 10;
	}
	
	
	// 커스텀 할 수 있는 생성자 만들기
	public PrototypeTv(boolean isPower, int channel, int volume) {
		this.isPower = isPower;
		this.channel = channel;
		this.volume = volume;
	}
	
	//채널에 관련된 메서드 (오버라이딩)
	public void setChannel(int cnl) {
		
		if(cnl>=0 && cnl<1000) {//cnl이 0보다 크거가 같고 그리고 cnl이 1000 이하일때면
			channel = cnl; //기존 channel을 cn1로 변경
		} else { //아닐 경우 채널 없슴 문자열 출력
			System.out.println("채널이 없습니다.");
		}
		
	}
	
	

}

ex)

- 주제

전자제품 -> 전원관련된 변수 / 메서드 (설계먼저)

 

전자레인지 -> 기능들 무엇을 넣을지 생각

초입력 (기본베이스)

 

해동 - 5분 관련 메서드

필요한 변수 추가

 

초를 이용해서 전자레인지 돌아가는 메서드

sleep 기능

 

필요한메서드 추가

728x90

'java > 7일차' 카테고리의 다른 글

java_상속+오버라이딩_221129(7일차)  (0) 2022.11.29
java_final_221129(7일차)  (0) 2022.11.29
java_객체지향 추상_221129(7일차)  (0) 2022.11.29
java_다형성03_221129(7일차)  (0) 2022.11.29
java_다형성02_221129(7일차)  (0) 2022.11.29
Comments