생성자

jinkyung·2021년 1월 14일
0

JAVA2

목록 보기
10/35
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에서 생략돼있는 것 : 돌아가라 끝났어 
	}
}

0개의 댓글

관련 채용 정보