본문 바로가기

국비교육/국비교육 복습

Day10_oop.constructor2 : 생성자 연습 + 오버로딩 (★)

(Q) 다음 요구사항에 맞게 데이터를 객체로 구현하고 정보를 출력하세요

 

 

- 아이디와 직업은 반드시 설정되도록 구현하세요

- 레벨을 설정하지 않으면 자동으로 1로 설정되게 구현하세요

 

 

Player 클래스

 

package day10_oop.constructor2;

public class Player {

	// 멤버 필드
	String name;
	String type;
	int level;
	
	// 생성자
	// 레벨을 입력받지 않았을 경우 자동으로 1이 되도록 (오버로딩)
	Player(String name, String type){
		this(name, type, 1);		//여기서 this는 생성자 자신을 지칭한다
	}
	
	// 레벨을 입력할 경우 해당 레벨이 되도록
	Player(String name, String type, int level){
		this.name = name;
		this.type = type;
		this.level = level;
	}
	
	// 레벨업 메소드
	void levelUP() {
		this.level ++;
	}
	
	// 출력 메소드
	void print() {
		System.out.println("아이디 : " + this.name);
		System.out.println("직업 : " + this.type);
		System.out.println("레벨 : " + this.level);
		System.out.println();
	}
}

 

- 메소드 뿐만 아니라 생성자도 오버로딩할 수 있다

 

 

Test01

 

package day10_oop.constructor2;

public class Test01 {

	public static void main(String[] args) {
		
		// 객체 생성
		Player a = new Player("마리오", "전사", 50);
		Player b = new Player("루이지", "마법사");		// 레벨을 입력하지 않으면 자동으로 1이 되도록
		Player c = new Player("피오나", "마법사", 1);	// 레벨을 직접 1로 설정하는 것도 가능
		
		// 출력
		a.print();
		b.print();
		c.print();
	}
}