final int CARD_NUM = 20;
SutdaCard[] cards = new SutdaCard[CARD_NUM];
SutdaDeck() {
//-------------------------내가 작성한 답------------------------
for(int i=0; i<CARD_NUM; i++) {
int num = i%10 + 1;
if(i==0 || i==2 || i==7)
cards[i] = new SutdaCard(num, true);
else
cards[i] = new SutdaCard(num, false);
}
//------------------------------------------------------------
/*---------------------------모범답안-------------------------------
for(int i=0; i < cards.length; i++) {
int num = i%10+1;
boolean isKwang = (i < 10) && (num==1 || num==3 || num==8);
// * &&가 OR보다 우선순위가 높기 때문에 괄호를 꼭 사용해야 한다.
cards[i] = new SutdaCard(num, isKwang);
}
* SutdaDeck 클래스에 cards라는 SutdaCard배열이 정의되어 있다.
이 배열을 생성했다고 해서 SutdaCard 인스턴스가 생성된 것은 아니다.
그저 저장할 공간만 생성한 것일 뿐이다.
인스턴스를 생성하는 과정을 SutdaDeck() 생성자가 담당한다.
---------------------------------------------------------------*/
}
}
class SutdaCard {
int num;
boolean isKwang;
SutdaCard() {
this(1, true);
}
SutdaCard(int num, boolean isKwang) {
this.num = num;
this.isKwang = isKwang;
}
//info() 대신 Object클래스의 toString() 을 오버라이딩했다.
public String toString() {
return num + ( isKwang ? "K":"");
}
}
class Exercise7_1 {
public static void main(String[] args) {
SutdaDeck deck = new SutdaDeck();
for (int i=0; i < deck.cards.length; i++) {
System.out.print(deck.cards[i] + ", ");
}
}
}
댓글 없음:
댓글 쓰기