2014년 1월 5일 일요일

[7-1]

class SutdaDeck {
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] + ", ");
}
}
}

댓글 없음:

댓글 쓰기