정구리의 우주정복
[Java] 상속이랑 등등 본문
반응형
- Fruit.java => 부모가 될 클래스
- Banana.java => 상속 1
- Apple.java => 상속 2
- Orange.java => 상속 3
- SellMain.java =>메인 함수
- SellFruit.java => 총 가격과 개수가 들어있는 것
- SellService.java => Main 에서 동작할 서비스들
오늘은 졸려서 대충 쓸거임
Fruit.java
package ch01.quiz02.case04Answer;
public class Fruit {
private String name;
private int price;
private int num;
public int getPrice() {
return price;
}
public int getNum() {
return num;
}
public void setPrice(int price) {
this.price = price;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void output() {
}
}
private 로 애들 만들어주고 getter/setter 만들어줬다
Orange,Banana,Apple .java
셋을 동일한 모양을 가지고 있다
package ch01.quiz02.case04Answer;
public class Orange extends Fruit{
String name = "Orange";
int price = 2000;
int num = 20;
public int getPrice() {
return price;
}
public int getNum() {
return num;
}
public void setPrice(int price) {
this.price = price;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void output() {
System.out.println("### 오렌지 ###");
System.out.println("수량 : "+num);
}
}
Fruit 를 상속 받고 price 랑 num 을 설정해준다 이후 getter/setter 만들기
SellFruit.java
package ch01.quiz02.case04Answer;
public class SellFruit {
private int totalPrice;
private int totalNum;
public int getTotalPrice() {
return totalPrice;
}
public int getTotalNum() {
return totalNum;
}
public void setTotalPrice(int price) {
this.totalPrice += price;
}
public void setTotalNum(int num) {
this.totalNum += num;
}
}
각 과일들 판 가격의 총 합과 개수가 들어갈 변수들을 만들어주고 getter/setter 만들어준다
package ch01.quiz02.case04Answer;
public class SellMain {
public static void main(String[] args) {
SellService ss = new SellService();
SellFruit[] sf = new SellFruit[3];
for(int i=0; i<sf.length; i++) {
sf[i] = new SellFruit();
}
while(true) {
int menu = ss.menu();
switch(menu) {
case 0:
System.out.println("프로그램 종료");
return;
case 1:
sf = ss.sell(sf);
break;
case 2:
ss.sellInfo(sf);
break;
case 3:
ss.amount();
break;
default:
System.out.println("다시 입력해주세요");
}
}
}
}
메인이다
1. 판매
2. 총 판매 개수, 가격 출력
3. 재고 출력
기능이 구현되어있다
재고를 각 과일별로 관리할 것이기 때문에
SellFruit[] sf = new SellFruit[3] 이렇게 넣어줬다
그리고 for 문 이용해서 객체들을 생성해준다
SellService.java
package ch01.quiz02.case04Answer;
import java.util.Scanner;
public class SellService {
Scanner sc = new Scanner(System.in);
Fruit[] f = new Fruit[3];
public SellService() {
f[0] = new Banana();
f[1] = new Apple();
f[2] = new Orange();
}
public int menu() {
System.out.println("###메뉴###");
System.out.println("1. 판매 ");
System.out.println("2. 매출 정보 보기");
System.out.println("3. 재고 보기 ");
System.out.println("0. 프로그램 종료 ");
System.out.printf(">>>");
return sc.nextInt();
}
public SellFruit[] sell(SellFruit[] sf) {
System.out.println("1. 바나나");
System.out.println("2. 사과");
System.out.println("3. 오렌지");
System.out.printf("과일 선택 >>>");
int fruitType = sc.nextInt();
System.out.printf("개수 입력 >>> ");
int fruitNum = sc.nextInt();
if(f[fruitType-1].getNum()-fruitNum < 0) { //개수 부족할 때
System.out.println("개수가 부족합디다");
return sf;
}
System.out.println("work");
sf[fruitType-1].setTotalNum(fruitNum);
sf[fruitType-1].setTotalPrice((f[fruitType-1].getPrice()) * fruitNum);
f[fruitType-1].setNum(f[fruitType-1].getNum()-fruitNum);
return sf;
}
public void sellInfo(SellFruit[] sf) {
for(SellFruit x : sf) {
System.out.println("### 과일 ###"); //이거 걍 배열 받아서 바꾸면 됨
System.out.println(x.getTotalNum());
System.out.println(x.getTotalPrice());
}
}
public void amount() {
for(int i=0 ; i<f.length; i++) {
f[i].output();
}
}
}
SellService.java
과일을 관리한 fruit 를 선언해주자
그리고 SellService 를 초기화 시 f 안에 자동으로 각 과일들이 초기화 되도록 만들어준다 이후는 배열 사용해서 뚝딱뚝딱 ㅁ만들면 별로 어렵지 않다 !! 내일 더 구체적으로 작성하겠음 !!
반응형
'STUDY > K-DIGITAL' 카테고리의 다른 글
[Java] abstract, extend, override, template method 사용해보기 (0) | 2022.09.10 |
---|---|
[Java] abstract ,down-casting 활용해보기 (0) | 2022.09.10 |
[Java] 상속 , override 정복하기 (1) | 2022.09.05 |
[Javascript] mouse hover 시 글씨 나오게 하기 !! (0) | 2022.09.04 |
[Javascript] to-do list 만들기 (0) | 2022.09.04 |
Comments