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
반응형