출처 : https://limkydev.tistory.com/198
게임시작 1
게임종료 2
>>
1
숫자를 입력해주세요 : 50
Up ====> 9번 남아 있습니다.
숫자를 입력해주세요 : 75
Down ===> 8번 남아 있습니다.
숫자를 입력해주세요 : 60
Up ====> 7번 남아 있습니다.
숫자를 입력해주세요 : 65
Down ===> 6번 남아 있습니다.
숫자를 입력해주세요 : 64
일치
게임시작 1
게임종료 2
>>
2
게임을 종료합니다.
철수 학생은 다음 3개의 필드와 메소드를 가진 4개의 클래스
Add, Sub, Mul, Div를 작성하려고 한다
int 타입의 a, b 필드: 2개의 피연산자
void setValue(int a, int b): 피연산자 값을 객체 내에 저장한다.
int calculate(): 클래스의 목적에 맞는 연산을 실행하고 결과를 리턴한다.
곰곰 생각해보니, Add, Sub, Mul, Div 클래스에 공통된 필드와 메소드가
존재하므로 새로운 추상 클래스 Calc를 작성하고 Calc를 상속받아
만들면 되겠다고 생각했다.
그리고 main() 메소드에서 다음 실행 사례와 같이
2개의 정수와 연산자를 입력받은 후, Add, Sub, Mul, Div 중에서 이 연산을
처리할 수 있는 객체를 생성하고
setValue() 와 calculate()를 호출하여 그 결과 값을 화면에 출력하면
된다고 생각하였다. 철수처럼 프로그램을 작성하라.
두 정수와 연산자를 입력하시오 >> 5 7 +
12
[7-19] 다음은 물건을 구입하는 사람을 정의한 클래스이다.
이 클래스는 멤버변수 Buyer .로 돈 과 장바구니 를 가지고 있다
제품을 구입하는 기능의 메서드와 장 (money) (cart) . buy
바구니에 구입한 물건을 추가하는 메서드 구입한 물건의 목록과 사용금액
그리고 남은 add , , 금액을 출력하는 메서드를 완성하시오
summary .
1. : buy 메서드명
기 능 지정된 물건을 구입한다 가진 돈 에서 물건의 가격을 빼고 : . (money) ,
장바구니 에 담는다 (cart) .
만일 가진 돈이 물건의 가격보다 적다면 바로 종료한다.
반환타입 없음 :
매개변수 구입할 물건 : Product p -
2. : add 메서드명
기 능 지정된 물건을 장바구니에 담는다 : .
만일 장바구니에 담을 공간이 없으면 장바구니의 크기를 배로 늘린 다음에 담는다 ,
반환타입 없음 :
매개변수 구입할 물건 : Product p -
3. : summary 메서드명
기 능 구입한 물건의 목록과 사용금액 남은 금액을 출력한다 : , .
반환타입 없음 :
매개변수 없음 :
[ ] 연습문제 /ch7/Exercise7_19.java
class Exercise7_19 {
public static void main(String args[]) {
Buyer b = new Buyer();
b.buy(new Tv());
b.buy(new Computer());
b.buy(new Tv());
b.buy(new Audio());
b.buy(new Computer());
b.buy(new Computer());
b.buy(new Computer());
b.summary();
}
}
class Buyer {
int money = 1000;
Product[] cart = new Product[3]; // 구입한 제품을 저장하기 위한 배열
int i = 0; // Product cart index 배열 에 사용될
void buy(Product p) {
/*
(1) . 아래의 로직에 맞게 코드를 작성하시오
1.1 . 가진 돈과 물건의 가격을 비교해서 가진 돈이 적으면 메서드를 종료한다
1.2 , 가진 돈이 충분하면 제품의 가격을 가진 돈에서 빼고
1.3 .(add ) 장바구니에 구입한 물건을 담는다 메서드 호출
Java 3 - 의 정석 판 연습문제 풀이 定石 57
*/
}
void add(Product p) {
/*
(2) . 아래의 로직에 맞게 코드를 작성하시오
1.1 i의 값이 장바구니의 크기보다 같거나 크면
1.1.1 2 . 기존의 장바구니보다 배 큰 새로운 배열을 생성한다
1.1.2 . 기존의 장바구니의 내용을 새로운 배열에 복사한다
1.1.3 . 새로운 장바구니와 기존의 장바구니를 바꾼다
1.2 (cart) . i 1 . 물건을 장바구니 에 저장한다 그리고 의 값을 증가시킨다
*/
} // add(Product p)
void summary() {
/*
(3) . 아래의 로직에 맞게 코드를 작성하시오
1.1 . 장바구니에 담긴 물건들의 목록을 만들어 출력한다
1.2 . 장바구니에 담긴 물건들의 가격을 모두 더해서 출력한다
1.3 (money) . 물건을 사고 남은 금액 를 출력한다
*/
} // summary()
}
class Product {
int price; // 제품의 가격
Product(int price) {
this.price = price;
}
}
class Tv extends Product {
Tv() { super(100); }
public String toString() { return "Tv"; }
}
class Computer extends Product {
Computer() { super(200); }
public String toString() { return "Computer";}
}
class Audio extends Product {
Audio() { super(50); }
public String toString() { return "Audio"; }
}
[ ] 실행결과
잔액이 부족하여 을 를 살수 없습니다 Computer / .
구입한 물건:Tv,Computer,Tv,Audio,Computer,Computer,
사용한 금액:850
남은 금액:150
다음주에 알려주시면 그거로 공부할게요.............모르겠으니깐요................................