Java

[Java] 상속 연습 - 라면 끓이는 프로그램

kyra 2022. 11. 20. 12:48
import java.util.Scanner;
class Ramyon{
    protected String boiled_pot;
    protected String boilwater(String elecpot, String water){
        System.out.println(elecpot+"에 "+ water+"을 넣어 끓인다(Ramyon 클래스");
        return "끓은 물";
    }
    public void cookRamyon(String ramyon, String vegetable, int time){
        boiled_pot = boilwater("전기냄비", "물");
        System.out.println(boiled_pot+ "에" + ramyon + "과 " + vegetable + "를 넣고 " + time + "분간 끓인다(Ramyon 클래스)") ;
        System.out.println("일반 라면 요리 완료(Ramyon 클래스");
    }
}

class RiceRamyon extends Ramyon {
    public void cookRamyon(String ramyon, String vegetable, String rice, int time) {
        boiled_pot = boilwater("전기냄비", "물");
        System.out.println(boiled_pot+"에" + ramyon + vegetable + rice + "을 넣고"+time+"분간 끓인다(RiceRamyon클래스");
        System.out.println("떡라면 요리 완료(RiceRamyon클래스)");
    }
}

public class CookingRamyon1{
    public static void main(String args[]){
        int s;
        do{
            System.out.println("만들고 싶은 요리를 입력하세요(1: 일반 라면, 2: 떡라면, 3: 치즈라면, 99: 종료");
            Scanner stdin = new Scanner(System.in);
            s = stdin.nextInt();
            if (s == 1){
                Ramyon r = new Ramyon();
                r.cookRamyon("신라면", "파", 5);
            } else if (s == 2) {
                RiceRamyon rr = new RiceRamyon();
                rr.cookRamyon("안성탕면", "앙파", "떡국떡", 5);
                rr.cookRamyon("칼국수 라면", "쪽파", 5);
            }
        }while (s != 99);
    }
}

 

1. 라면 클래스 생성

- 클래스 내 boiled_pot 변수

- 클래스 내 boilwater(elecpot, water) 2개를 매개변수로 갖는 메서드

- 클래스 내 cookRamyon(ramyon, vegetable, time) 3개를 매개변수로 갖는 public 메서드

 

2. RiceRamyon - 라면 클래스를 상속받음

- 부모클래스의 cookRamyon을 오버라이딩 ; 매개변수를 (ramyon, vegetable, rice, time) 4개로 지정

 

3. CookingRamyon1 클래스

- do-while문 사용

- 1번을 누르면 일반 라면, 2번을 누르면 떡라면, 다른 것을 누르면 다시 처음으로, 99를 누르면 종료되는 프로그램

- 1번을 누르면 Ramyon클래스의 객체 r이 생성. 매개변수에 (신라면, 파, 5)를 지정

- 2번을 누르면 RiceRamyon클래스의 객체 rr이 생성. 매개변수가 4개인 경우(ramyon, vegetable, rice, time) 자식 클래스인 RiceRamyon의 cookRamyon이 실행. 매개변수가 3개(ramyon, vegetable, time)인 경우 부모 클래스의 cookRamyon이 실행된다.(오버라이딩 했기 때문에)