본문 바로가기

국비지원_핀테크

10일차_ [java] 미니 실습

 

 

 

 

 

실습

1. turnOn(), turnOff() 인터페이스 생성

( 인터페이스를 생성하면 해당하는 메소드를 무조건 선언 및 구현해야 한다 )

2. Main 에서는 각각 냉장고와 에어컨을 선택하여 조절할 수 있음

3. 냉장고, 에어컨은 각각 켜기, 끄기, 온도 올리기, 온도 내리기 기능을 가짐

 

package main;

public interface HomeAppliances {
	void turnOn();
	void turnOff();
}

인터페이스 생성

 

package main;

import java.util.Scanner;

import airConditioner.AirConditioner;

public class Main {
	public static void main(String[] args) {
		while(true) {
			Scanner sc = new Scanner(System.in);
			System.out.println("\n제어할 가전제품 선택 : 1. 냉장고, 2. 에어컨, 3. 종료");
			System.out.print("입력 >>> ");
			int option = sc.nextInt();
			
			if(option == 1) {
				Refrigerator refrigerator = new Refrigerator();
				int refOption;
				while(refrigerator.showOption() != 5) {
					// 옵션 선택
					refOption = refrigerator.showOption();
					// 옵션 실행
					refrigerator.doOption(refOption);
				}
			}
			
			if(option == 2) {
				AirConditioner airConditioner = new AirConditioner();
				int airOption;
				while(airConditioner.getOption()!=5) {
					// 옵션 선택
					airOption = airConditioner.chooseOption();
					// 옵션 실행
					airConditioner.doOption(airOption);
				}
				System.out.println("이전으로 이동합니다.");
			}
			
			if(option == 3) {
				System.out.println("\n종료합니다.");
				break;
			}
		}
	}
}

main 코드 작성

 

package main;

import java.util.Scanner;

public class Refrigerator implements HomeAppliances{

    private int temperature;
    private boolean isOpen = false;
    
    public int showOption() {
    	Scanner sc = new Scanner(System.in);
    	System.out.println("\n1. 열기");
    	System.out.println("2. 닫기");
    	System.out.println("3. 온도 내리기");
    	System.out.println("4. 온도 올리기");
    	System.out.println("5. 이전으로");
    	System.out.print("입력 >>> ");
    	return sc.nextInt();
    }
    
    public void doOption(int option) {
    	if(option == 1) turnOn();
    	else if(option == 2) turnOff();
    	else if(option == 3) upTem();
    	else if(option == 4) downTem();
    }
    
    // 열기
	@Override
    public void turnOn() {
		if(isOpen == false) {
			temperature = 0;
	        System.out.println("\n냉장고를 엽니다. 현재 설정온도 : " + temperature);
	        isOpen = true;
		}
		else System.out.println("\n이미 냉장고가 열려있습니다.");
    }
	
	// 닫기
    @Override
    public void turnOff() {
    	if(isOpen == true) {
	        System.out.println("냉장고를 닫습니다.");
	        isOpen = false;
    	}
    	else System.out.println("이미 냉장고가 닫혀있습니다.");
    }
    
    // 온도 내리기
    public void upTem() {
    	if (temperature > -20) {
	    	temperature = temperature -1;
	    	System.out.println("\n온도를 1도 내립니다. 현재 온도 : " + temperature);
    	}
    	else System.out.println("\n최저 온도는 -20도 입니다. 현재 온도 : " + temperature);
    }
    
    // 온도 올리기
    public void downTem() {
    	if (temperature < 10) {
	    	temperature = temperature +1;
	    	System.out.println("\n온도를 1도 내립니다. 현재 온도 : " + temperature);
    	}
    	else System.out.println("\n최고 온도는 10도 입니다. 현재 온도 : " + temperature);
    }
    
}

냉장고 코드 작성

 

package airConditioner;

import java.util.Scanner;

import main.HomeAppliances;

public class AirConditioner implements HomeAppliances {
	
	private int temperature;
	private boolean isOn = false;
	private int option=0;
	
	// 에어컨 번호 선택 getter / setter
	public int getOption() {
		return option;
	}
	public void setOption(int option) {
		this.option = option;
	}
	
	// 에어컨 on/off getter / setter
	public boolean isOn() {
		return isOn;
	}
	public void setOn(boolean isOn) {
		this.isOn = isOn;
	}
	
	// 온도 getter / setter
	public int getTemperature() {
		return temperature;
	}
	public void setTemperature(int temperature) {
		this.temperature = temperature;
	}
	
	// 옵션 출력, 입력 받기
	public int chooseOption() {
			Scanner sc = new Scanner(System.in);
			System.out.println("<<< 기능 선택 >>>");
			System.out.println("1. 전원 켜기");
			System.out.println("2. 전원 끄기");
			System.out.println("3. 온도 올리기");
			System.out.println("4. 온도 내리기");
			System.out.println("5. 이전으로");
			System.out.print("번호를 입력하세요 >>> ");
			option = sc.nextInt();
			return option;
	}
	
	// 선택 기능으로 메소드 실행
	public void doOption(int option) {
		if (option == 1) choose1();
		else if (option == 2) choose2();
		else if (option == 3) choose3();
		else if (option == 4) choose4();
	}
	
	public void choose1() {
		if(isOn == false) turnOn();
		else System.out.println("에어컨이 이미 켜져있습니다.");
		System.out.println();
	}
	
	public void choose2() {
		if(isOn == true) turnOff();
		else System.out.println("에어컨이 이미 꺼져있습니다.");
		System.out.println();
	}
	
	public void choose3() {
		if(isOn == true) {
			System.out.println("현재 온도를 1도 올립니다.");
			setTemperature(getTemperature() + 1);
			System.out.println("현재 온도 : " + getTemperature());
			System.out.println();
		}
		else System.out.println("에어컨을 먼저 켜주세요"); 
	}
	
	public void choose4() {
		if (isOn == true) {
			System.out.println("현재 온도를 1도 내립니다.");
			setTemperature(getTemperature() - 1);
			System.out.println("현재 온도 : " + getTemperature());
			System.out.println();
		}
		else System.out.println("에어컨을 먼저 켜주세요"); 
	}
	
	
	
	// 에어컨 실행
	@Override
	public void turnOn() {
		System.out.println("에어컨을 켭니다.");
		isOn = true;
		temperature = 25;
		System.out.println("기본 설정 온도 : " + getTemperature());
	}

	// 에어컨 종료
	@Override
	public void turnOff() {
		System.out.println("에어컨을 끕니다.");
		isOn = false;
	}
	
}

에어컨 코드 작성

 

 

 

 

 

코드 실행

 

728x90