특가 할인 매장
가게에서 판매할 상품을 위한 클래스를 만들어봅시다!
MarketGood 클래스
인스턴스 변수
MarketGood 클래스는 아래와 같은 인스턴스 변수들을 포함합니다:
(1) String name (상품의 이름)
(2) int retailPrice (상품의 출시 가격)
(3) int discountRate (상품의 할인율. 단위: %)
모두 private으로 설정해주세요!
생성자
MarketGood 클래스는 두 개의 생성자를 가지고 있습니다:
(1) public MarketGood(String name, int retailPrice, int discountRate)
-
생성자의 파라미터로 받은 값들을 인스턴스 변수에 지정해줍니다.
-
discountRate가 0%보다 작거나 100%보다 큰 경우, 0으로 지정해줍니다.
(2) public MarketGood(String name, int retailPrice)
- 두 번째 생성자는 discountRate의 기본값으로 0을 넣어줍니다.
Getter / Setter 메소드
(1) name, retailPrice는 getter 메소드만 만들어줍니다. 값을 지정해주는 것은 생성자에서 완료되었기 때문에 setter 메소드는 따로 만들 필요가 없습니다.
(2) discountRate는 바뀔 수 있기 때문에 getter과 setter 메소드를 모두 만들어줍니다.
public int getDiscountedPrice()
할인가를 리턴하는 메소드를 만듭니다. 예를 들어서 retailPrice가 10000이고 discountRate가 20이면, 8000을 리턴하는 것이죠.
> MacBook Air의 할인율: 0%
> MacBook Pro의 할인율: 15%
> iPhone 7의 정상 가격: 920000원
> iPhone 7의 할인 가격: 736000원
> 경쟁 업체가 많아져서 iPhone 7의 할인율이 35%로 올랐습니다.
> iPhone 7의 할인 가격: 598000원
public class MarketGood {
private String name;
private int retailPrice;
private int discountRate;
public MarketGood(String pName, int pRetailPrice, int pDiscountRate) {
name = pName;
retailPrice = pRetailPrice;
if (pDiscountRate < 0 || pDiscountRate > 100) {
discountRate = 0;
} else {
discountRate = pDiscountRate;
}
}
public MarketGood(String pName, int pRetailPrice) {
name = pName;
retailPrice = pRetailPrice;
discountRate = 0;
}
public String getName() {
return name;
}
public int getRetailPrice() {
return retailPrice;
}
public void setDiscountRate(int newDiscountRate) {
discountRate = newDiscountRate;
}
public int getDiscountRate() {
return discountRate;
}
public int getDiscountedPrice() {
return retailPrice - (retailPrice * discountRate)/100 ;
}
}
public class Main {
public static void main(String[] args) {
MarketGood g1 = new MarketGood("MacBook Air", 1250000);
MarketGood g2 = new MarketGood("MacBook Pro", 2990000, 15);
MarketGood g3 = new MarketGood("iPhone 7", 920000, 20);
System.out.println(g1.getName() + "의 할인율: " + g1.getDiscountRate() + "%");
System.out.println(g2.getName() + "의 할인율: " + g2.getDiscountRate() + "%");
System.out.println(g3.getName() + "의 정상 가격: " + g3.getRetailPrice() + "원");
System.out.println(g3.getName() + "의 할인 가격: " + g3.getDiscountedPrice() + "원");
System.out.println("경쟁 업체가 많아져서 " + g3.getName() + "의 할인율이 35%로 올랐습니다.");
g3.setDiscountRate(35);
System.out.println(g3.getName() + "의 할인 가격: " + g3.getDiscountedPrice() + "원");
}
}
본 내용은 Codeit의 '자바 기초' 강의를
참고하여 작성한 내용입니다.
'Languages > Java' 카테고리의 다른 글
[자바 객체 지향 프로그래밍] 03. 중간고사: 문제 해결 능력 기르기 (0) | 2021.02.01 |
---|---|
[자바 객체 지향 프로그래밍] 03. 중간고사: 문제 해결 능력 기르기 (0) | 2021.02.01 |
[자바 객체 지향 프로그래밍] 02. 객체 설계하기 (0) | 2021.01.28 |
[자바 객체 지향 프로그래밍] 02. 객체 설계하기 (0) | 2021.01.27 |
[자바 객체 지향 프로그래밍] 02. 객체 설계하기 (0) | 2021.01.27 |