배웠던 것들을 활용해서 식대 계산 프로그램을 한번 짜볼 것이다~ 추상클래스를 본격적으로 사용할 것이다.
먼저 식대를 기본적으로 상수로 설정해주고 시작할 것이다.
PriceTable.java
package com.javalec.childlunch;
public class PriceTable {
public static final int RICE = 1000;
public static final int BULGOGI = 2000;
public static final int BANANA = 700;
public static final int MILK = 200;
public static final int ALMOND = 100;
}
static final로 정의 해주었다.
이제 점심 식대 추상 클래스로 선언 해준다.
LunchMenu.java
package com.javalec.childlunch;
public abstract class LunchMenu {
public int rice;
public int bulgogi;
public int banana;
public int milk;
public int almond;
public LunchMenu(int rice, int bulgogi, int banana, int milk, int almond) {
this.rice = rice;
this.bulgogi = bulgogi;
this.banana = banana;
this.milk = milk;
this.almond = almond;
}
public abstract int calculating();
}
기본적으로 밥, 불고기, 바나나, 우유, 아몬드가 있다. abstract이기 때문에 꼭 상속 받아야 한다. super를 사용할 것이다. 그리고 calculating 메소드로 식대를 계산할 것이다. 이것도 추상 메소드이기 때문에 상속 받아서 처리할 것이다.
Child1.java
package com.javalec.childlunch;
public class Child1 extends LunchMenu {
public Child1(int rice, int bulgogi, int banana, int milk, int almond) {
super(rice, bulgogi, banana, milk, almond);
}
@Override
public int calculating() {
return rice + bulgogi + banana;
}
}
extends 로 상속 받고 super로 변수들을 상속했다. 그리고 override로 첫번째 아이 클래스가 먹을 것의 식대만 더해주면 된다.
Child2.java
package com.javalec.childlunch;
public class Child2 extends LunchMenu {
public Child2(int rice, int bulgogi, int banana, int milk, int almond) {
super(rice, bulgogi, banana, milk, almond);
}
@Override
public int calculating() {
return rice + bulgogi + milk + almond;
}
}
두번째 아이 클래스도 비슷한 로직이다.
MainClass.java
package com.javalec.childlunch;
public class MainClass {
public static void main(String[] args) {
LunchMenu child1 = new Child1(PriceTable.RICE, PriceTable.BULGOGI, PriceTable.BANANA, PriceTable.MILK, PriceTable.ALMOND);
LunchMenu child2 = new Child2(PriceTable.RICE, PriceTable.BULGOGI, PriceTable.BANANA, PriceTable.MILK, PriceTable.ALMOND);
System.out.println("child1 아이의 식대 : " + child1.calculating());
System.out.println("child2 아이의 식대 : " + child2.calculating());
}
}
객체를 생성해서 각각 선언해두었던 값들을 넣어준다. 그리고 calculating 메소드로 계산된 식대를 출력해준다.
출력
child1 아이의 식대 : 3700
child2 아이의 식대 : 3300
간단하게 추상 메소드와 클래스를 사용해서 식대를 계산하는 프로그램을 구현해보았다. 매우 간단하기 때문에 쉽게 쉽게 구조를 생각해볼 수 있다.