Java/JAVA의 정석_문제풀이

[6-1~2]연습문제 - 생성자

Jenny_yoon 2022. 11. 4. 15:26
728x90
반응형

[6-1] 다음과 같은 멤버변수를 갖는 SutdaCard클래스를 정의하시오.

[6-2] 문제6-1에서 정의한 SutdaCard클래스에 두 개의 생성자와 info()를 추가해서 실행 결과와 같은 결과를 얻도록 하시오.

 


 

 

풀이

1) SutaCard1 클래스 생성 

class SutdaCard1 {
	int num;
	boolean isKwang;
}

2) SutaCard1 클래스 안에 생성자 2개 생성.

- 매개변수가 있는 생성자를 살펴보면 카드의 num과 isKwang의 값을 매개변수로 받는 것을 알 수 있다.

- 매개변수가 없는 기본 생성자는 실행결과에서 "1K"가 출력된 것 으로 봐서 num과 isKwang의 값을 각각 1과 true로 하였다는 것을 알 수 있다.

2-1) 매개변수가 없는 생성자 생성(2-2번 생성자를 통해 2-1번 생성자 호출)

	SutdaCard1(){
		this.num = 1;
		this.isKwang = true;
	}

        or (아래가 더 좋은 코드)

	SutdaCard1(){
    		this(1,true);
	}

 

2-2) 매개변수가 있는 생성자 생성 

	SutdaCard1(int num, boolean isKwang){
		this.num = num;
		this.isKwang = isKwang;
	}

3) 메서드 info() 생성

	String info() {
//	String info(int num, boolean isKwang) {
//	인자를 삭제해야 오류가 안남. 인자의 값이 없기 때문에 삭제 
		return num + (isKwang? "k" : "");
	}
}

 

 

정답
public class Ex6_2 {
	public static void main(String[] args) {
		SutdaCard1 card1 = new SutdaCard1(3, false);
		SutdaCard1 card2 = new SutdaCard1();
		
		System.out.println(card1.info());
		System.out.println(card2.info());
	}
}

//SutaCard1 클래스 생성 
class SutdaCard1 {
	int num;
	boolean isKwang;
	
//SutaCard1에 생성자 2개 생성
	SutdaCard1(){
		this.num = 1;
		this.isKwang = true;
	}
	
	SutdaCard1(int num, boolean isKwang){
		this.num = num;
		this.isKwang = isKwang;
	}
//메서드 info() 생성 
	String info() {
		return num + (isKwang? "k" : "");
	}
}

 

어렵군! 나중에 한번 더 풀어보자. 기본중에 기본 문제!

728x90
반응형