package ex02.classobj.class02;
/*
생성자 => 객체 생성시 자동으로 호출되는 메서드 -- 객체의 초기화를 담당하는 메서드
클래스 이름과 동일하게 만들어야 한다.
*/
import java.util.Arrays;
import java.util.Random;
class Restaurant{
// 필드
private int money = 100000;
private String[] foods = {"떡볶이", "순대", "라면", "쫄면"};
private int selFood; // 자동으로 0으로 초기화
// 생성자 메서드
// 클래스 이름과 동일하게 만들면 된다
// 특정 대상으로부터 호출되는 것이 아니라 자동으로 호출된다
// 그러므로 리턴값이 없다
Restaurant(){
System.out.println("--- 생성자 호출 ---");
prepareRestaurant();
}
Restaurant(int money){
System.out.println("--- 생성자 호출(int money) ---");
this.money = money;
calcMoney();
System.out.println();
}
private void cleaning() {
System.out.println("식당을 청소한다");
}
private void prepareFoods() {
System.out.println("음식 재료를 손질하다");
}
private void calcMoney() {
System.out.println("오늘 금고의 금액은 " + money + "이다");
}
// 식당 사전준비
void prepareRestaurant() {
cleaning();
prepareFoods();
}
// 식당 마감정리
void arrangeRestaurant() {
calcMoney();
cleaning();
}
void welcome() {
System.out.println("어서 오세요");
}
void byeBye() {
System.out.println("안녕히 가세요");
}
void getMoney(int m) {
if(m < 0) {
System.out.println("음식값을 주세요");
return;
}
money += m;
System.out.println(m + "을 음식값으로 받음");
}
void anyFood() {
System.out.println("어떤 음식 주문하실래요?");
System.out.println(Arrays.deepToString(foods));
Random rd = new Random();
selFood = rd.nextInt(foods.length);
System.out.println(foods[selFood] + "이요");
}
void cookFood() {
System.out.println(foods[selFood] + "을 요리하다");
}
void sendFood() {
System.out.println(foods[selFood] + " 나왔습니다");
System.out.println("맛있게 드세요");
}
}
public class ManageRestaurant {
public static void main(String[] args) {
Restaurant rest = new Restaurant();
//Restaurant rest = new Restaurant(200000);
// 손님 맞이
for (int i = 0; i < 10; i++) {
System.out.println("----------------------");
rest.welcome();
rest.anyFood();
rest.cookFood();
rest.sendFood();
rest.getMoney(9000);
rest.byeBye();
System.out.println("----------------------");
}
// 하루를 마치고 정리하기
rest.arrangeRestaurant();
}
}
return이란
package ex02.classobj.return03;
public class ReturnKeyword {
public static void main(String[] args) {
viewMyInfo(2);
System.out.println("----------The End----------");
}
// return은 이 메서드를 호출한 곳으로 돌아가라
// => 이 메서드 여기서 끝내라
static void viewMyInfo(int num) {
System.out.println("안녕하세요");
if(num==0) return;
System.out.println("저는 개발자입니다");
if(num==1) return;
System.out.println("현재 Java를 배우고 있습니다");
if(num==2) return;
System.out.println("Web Service를 공부할 예정입니다");
return; // void에서 생략돼있는 것 : 돌아가라 끝났어
}
}