package ch07;
public class Student {
String name;
int number;
int grade;
//기본 생성자
//개발자가 생성자를 하나라도 만들지 않으면 자동으로 컴파일러가 생성자를 추가해 준다.
//public Student() {} <---- 기본 생성자 모양
//컴파일러가 .java --------> (이때 자동 추가 됨) .class
//사용자 정의 생성자
public Student(String s, int n, int g) {
name = s;
number = n;
grade = g;
}
//tip
//생성자
//객체를 생성할 때 다음과 같은 모양으로 객체를 만들어라고 지시하는 것
//즉, 강제성을 부여하는 것과 같다.
//생성자는 객체를 생성할 때 반드시 존재해야한다
}
package ch07;
public class StudentMainTest {
Student s1 = new Student("티모", 10, 3);
}
생성자 코드 (3)
package ch07;
public class Dog {
//직접 속성 정의
String name;
//직접 생성자 정의
public Dog(String n) {
System.out.println("오 생성자 호출~ ");
name = n;
//중요!
//**생성자는 객체가 만들어질 때 제일 먼저 수행하는 코드가 된다**
}
//여기서 메인함수 만들어보기
public static void main(String[] args) {
Dog dog1 = new Dog("바둑이");
System.out.println(dog1.name);
}
}
생성자 커피머신 만들기 실습 코드
package ch07;
/**
* 메서드 연습
* 메서드란? 객체에 소손된 함수로, 클래스의 상태(데이터)를 활용하거라 객체와 관련된
* 작업을 처리할 때 사용한다.
*/
public class CoffeeMachine {
//1. 상태 설계
int water; //물의 양(ml)
int coffee; //원두의 양(g)
//3. 생성자 만들기 - 사용자 정의 생성자(사용자 생성자 만들면 기본생성자 생성x)
public CoffeeMachine(int w, int c) {
water = w;
coffee = c;
}
//2. 행위 설계
//물 채우기
public void refillWater(int amount) {
if (amount > 0) {
water += amount;
System.out.println("amount + " + "ml의 물을 채웠습니다");
} else {
System.out.println("0보다 큰 양의 물을 채워주세요");
}
}
//커피 원두 채우기
public void refillCoffee(int amount) {
if (amount > 0) {
coffee += amount;
System.out.println(amount + "g의 커피 원두를 채웠습니다");
} else {
System.out.println("0보다 큰 양의 원두를 채워주세요");
}
}
//커피 만들기
public String makeCoffee() {
//커피 한 잔에 물 100ml, 원두 10g필요( 사전 조건 설계)
if (water >= 100 && coffee >= 10) {
water -= 100;//물 사용한 값 빼주기
coffee -= 10;//원두 사용한 값 빼주기
return "맛있는 커피 한 잔 완성";
} else {
return "재료가 부족해요! 물이나 원두 채워주세요";
}
}
//상태창
public void showInfo() {
System.out.println("=======상태창=========");
System.out.println("현재 물 양 : " + water);
System.out.println("현재 원두 양 : " + coffee);
}
}
package ch07;
//코드를 실행하는 측
public class CoffeeMachineMainTest {
public static void main(String[] args) {
CoffeeMachine machine = new CoffeeMachine(200, 30);
String orderResult1 = machine.makeCoffee();
System.out.println(orderResult1);
machine.showInfo();
System.out.println("-------------");
machine.makeCoffee();
machine.showInfo();
System.out.println("-----------------");
String orderResult2 = machine.makeCoffee();
System.out.println("orderResult2 : " + orderResult2);
machine.showInfo();
}
}