커피머신 클래스 설계
package com.method;
/*
메서드란?
객체에 소속된 함수로
클래스의 상태(데이터)를 활용하거나
객체와 관련된 작업을 처리할때 사용한다.
*/
public class CoffeeMachine {
//속성
int water; //물의 양
int coffee; //커피의 양
//생성자
//메서드
public void refillWater(int amount) { // 물 채우기
if (amount > 0) {
water += amount;
System.out.println(amount + "ml 물을 채웠다");
System.out.println("남은 물:" + water);
} else {
System.out.println("0보다 많은 양의 물을 채우시오");
}
}
public void refillCoffee(int amount) { // 커피 채우기
if (amount > 0) {
coffee += amount;
System.out.println(amount + "g 원두를 채웠다");
System.out.println("남은 원두:" + coffee);
} else {
System.out.println("0보다 많은 양의 원두를 채우시오");
}
}
public String makeCoffee() {
/*
커피 만들기
커피 한 잔에 물 100ml, 원두 10g 필요
방어적 코드도 잊지 말자!
*/
if (water >= 100 && coffee >= 10) {
water -= 100; // 물 사용
coffee -= 10; // 커피 사용
System.out.println("남은 물:" + water);
System.out.println("남은 원두:" + coffee);
return "맛 있는 커피 한 잔 완성";
} else if (water < 100 && coffee >= 10) {
System.out.println("남은 물:" + water);
return "물이 부족해요";
} else if (water >= 100 && coffee < 10) {
System.out.println("남은 원두:" + coffee);
return "원두가 부족해요";
} else {
return "물과 원두가 부족해요";
}
}
/*
사용자 정의 생성자를 만드시오
멤버변수 water coffee 값이 초기화 될 수 있도록
*/
public CoffeeMachine() {}
public CoffeeMachine(int cowater, int cocoffee) {
water = cowater;
coffee = cocoffee;
}
//생성자가 여러개면 생성자 오버로딩!
} // end of class
커피머신 코드 실행
package com.method;
public class CoffeeMachineMain {
// main
public static void main(String[] args) {
// 객체 생성 = 인스턴스화
CoffeeMachine machine1 = new CoffeeMachine(300, 10);
// 재료 채우기 동작
machine1.refillWater(100); // 물 채우기
machine1.refillCoffee(10); // 물 채우기
System.out.println("===== =====");
// 커피 만들기 동작
System.out.println("커피 주문");
String result = machine1.makeCoffee();
System.out.println(result);
System.out.println("===== =====");
System.out.println("2차 커피 주문");
System.out.println(machine1.makeCoffee());
System.out.println("===== =====");
System.out.println("3차 커피 주문");
System.out.println(machine1.makeCoffee());
System.out.println("===== =====");
machine1.refillWater(0); // 물 채우기
machine1.refillCoffee(30); // 물 채우기
System.out.println("===== =====");
System.out.println("4차 커피 주문");
System.out.println(machine1.makeCoffee());
System.out.println("===== =====");
System.out.println("5차 커피 주문");
System.out.println(machine1.makeCoffee());
System.out.println("===== =====");
System.out.println("6차 커피 주문");
System.out.println(machine1.makeCoffee());
System.out.println("===== =====");
} // end of main
} // end of class

Scanner
while문
활용해 실시간 프로그램을 만들어본다.
커피머신 클래스 설계
package com.my;
public class CMachine1 {
//속성
int water; //물의 양
int coffee; //커피의 양
//생성자
//메서드
public void refillWater(int amount) { // 물 채우기
if (amount > 0) {
water += amount;
System.out.println(amount + "ml 물을 채웠다");
System.out.println("남은 물:" + water);
} else {
System.out.println("0보다 많은 양의 물을 채우시오");
}
}
public void refillCoffee(int amount) { // 커피 채우기
if (amount > 0) {
coffee += amount;
System.out.println(amount + "g 원두를 채웠다");
System.out.println("남은 원두:" + coffee);
} else {
System.out.println("0보다 많은 양의 원두를 채우시오");
}
}
public String makeCoffee() {
/*
커피 만들기
커피 한 잔에 물 100ml, 원두 10g 필요
방어적 코드도 잊지 말자!
*/
if (water >= 100 && coffee >= 10) {
water -= 100; // 물 사용
coffee -= 10; // 커피 사용
System.out.println("남은 물:" + water);
System.out.println("남은 원두:" + coffee);
return "맛 있는 커피 한 잔 완성~!";
} else if (water < 100 && coffee >= 10) {
System.out.println("남은 물:" + water);
return "물이 부족해요";
} else if (water >= 100 && coffee < 10) {
System.out.println("남은 원두:" + coffee);
return "원두가 부족해요";
} else {
return "물과 원두가 부족해요";
}
}
/*
사용자 정의 생성자를 만드시오
멤버변수 water coffee 값이 초기화 될 수 있도록
*/
public CMachine1(int cowater, int cocoffee) {
water = cowater;
coffee = cocoffee;
}
} // end of class
커피머신 코드 실행
package com.my;
import java.util.Scanner;
public class CMachineMain1 {
// main
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 객체 생성 = 인스턴스화
CMachine1 machine1 = new CMachine1(300, 10);
int coffeeCount = 1;
while (true) {
System.out.println("1.커피내리기 2.물채우기 3.원두채우기 0.종료");
int choice = sc.nextInt();
if (choice == 1) {
System.out.println(coffeeCount + "차 커피 주문");
System.out.println(machine1.makeCoffee());
coffeeCount++;
System.out.println("===== =====");
} else if (choice == 0) {
System.out.println("...프로그램 종료");
break;
} else if (choice == 2) {
machine1.refillWater(100);
System.out.println("===== =====");
} else if (choice == 3) {
machine1.refillCoffee(10);
System.out.println("===== =====");
}
} // end of while
} // end of main
} // end of class

'Java' 카테고리의 다른 글
| 접근 제어 지시자 Accecc Modifier (0) | 2025.04.16 |
|---|---|
| 생성자를 호출해 클래스 상호작용 (0) | 2025.04.16 |
| 생성자와 메서드를 활용해 class 사이 상호작용을 해본다 (0) | 2025.04.15 |
| 클래스 설계와 생성자의 활용 (0) | 2025.04.15 |
| 함수와 메서드 - 메서드 (0) | 2025.04.15 |