논리적으로 작업 순서 생각하기
- 클래스들을 설계 ㅡ ( 자신만에 기능, 속성 정의 )
- 다형성 적용(상속) ㅡ ( 공통 속성 및 기능 묶기 )
- 기능 만들어 주기 ㅡ ( 요구 조건 : instanceof 연산자 활용 )
- 코드 테스트 실행 ㅡ ( 시나리오는 스스로 만들어 보기)
package basic.exercise.toy;
// 클래스 - 인형뽑기
// 상품들이 존재 가능
// 사자인형, 곰인형, 에어팟
// 요구 조건
// 배열을 활용해서 객체들을 담아 주세요
public class ToyMachine {
}
package basic.exercise.toy;
public class ToyMachineTest {
// 코드 테스트
public static void main(String[] args) {
} // end of main
} // end of class
Lion
package basic.exercise.toy;
public class Lion extends ToyMachine{
String add;
public Lion() {
name = "사자인형";
price = 2000;
add = "호랑이인형";
}
public void addTiger() {
System.out.println("=== 추가상품 ===");
System.out.println(this.add +"를 추가로 줍니다.");
}
}
Bear
package basic.exercise.toy;
public class Bear extends ToyMachine {
public Bear() {
name = "곰인형";
price = 1500;
}
}
AirPods
package basic.exercise.toy;
public class Airpods extends ToyMachine {
public Airpods() {
name = "에어팟";
price = 100000;
}
}
ToyMachine
package basic.exercise.toy;
import java.util.Random;
// 클래스 - 인형뽑기
// 상품들이 존재가능
// 사자 인형, 곰인형, 에어팟
// 요구조건
// 배열을 활용해서 객체들을 담아 주세요
public class ToyMachine {
String name;
int price;
public void catchingdoll() {
System.out.println(name + "뽑기 도전 !");
System.out.println();
}
public void showInfo() {
System.out.println("=======================");
System.out.println("상품 이름 : " + name);
System.out.println("가격 : " + price + "원 짜리");
}
public static int makeNumber() {
Random random = new Random();
int resultNumber = random.nextInt(2);
if (resultNumber == 1) {
System.out.println("도전한 상품이 뽑혓습니다.");
} else {
System.out.println("도전한 상품이 뽑히지 않았습니다.");
}
return resultNumber;
}
public static int number() {
Random random1 = new Random();
int resultNumber = random1.nextInt(3);
return resultNumber;
}
}
코드의 흐름
package basic.exercise.toy;
import java.util.Random;
import java.util.Scanner;
public class ToyMachinTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Lion lion = new Lion();
Bear bear = new Bear();
Airpods airpods = new Airpods();
ToyMachine[] dolls = new ToyMachine[3];
dolls[0] = lion;
dolls[1] = bear;
dolls[2] = airpods;
// 도전 뽑기
System.out.println("0. 사자인형 1. 곰인형 2. 에어팟");
System.out.print("무엇을 뽑으시겠습니까? : ");
int choice = sc.nextInt();
dolls[choice].catchingdoll();
if (makeNumber() == 1) {
dolls[choice].showInfo();
if (dolls[choice] instanceof Lion) {
((Lion) dolls[choice]).addTiger();
}
}
// 랜덤 뽑기
// int a = number();
// dolls[a].catchingdoll();
// if (makeNumber() == 1) {
// dolls[a].showInfo();
// if (dolls[a] instanceof Lion) {
// ((Lion) dolls[a]).addTiger();
// }
// }
}
public static int makeNumber() {
Random random = new Random();
int resultNumber = random.nextInt(2);
if (resultNumber == 1) {
System.out.println("도전한 상품이 뽑혓습니다.");
} else {
System.out.println("도전한 상품이 뽑히지 않았습니다.");
}
return resultNumber;
}
public static int number() {
Random random1 = new Random();
int resultNumber = random1.nextInt(3);
return resultNumber;
}
}
'Java > Java 객체지향 핵심 - 2' 카테고리의 다른 글
인터페이스(interface) -23 (0) | 2024.04.25 |
---|---|
추상 클래스(abstract class) - 22 (0) | 2024.04.24 |
다형성(Polymorphism) - 20 (0) | 2024.04.24 |
연관, 의존 관계란? - 19 (0) | 2024.04.23 |
Composition(포함관계) - 18 (0) | 2024.04.23 |