오유인페이지
개인차단 상태
크레티앙님의 개인페이지입니다
회원가입 : 14-03-10
방문횟수 : 212회
닉네임 변경이력
일반
베스트
베오베
댓글
22 2015-06-04 12:49:41 0
자바 프로젝트 하다가 막혔는데요.. [새창]
2015/06/04 11:46:47
흠 아래와 같이 동적 생성해보는것도 좋습니다. null일때만 새로운 객체로 초기화

public int readnationfile(nation list1[]){
 int count = 0;
 Scanner filein = null;
 try {
  file = new File("nation.txt");
  filein = new Scanner(file);
 } catch (FileNotFoundException e) {
  System.out.println("파일 없음...");
 }

 while (filein.hasNext()) {
  if(list1[count] == null){ //list1[count]가 null이라면?
   list1[count] = new nation(); //여기서 객체 생성
  }
  list1[count].read(filein);
  count++;
 }

 int nationnum = count;
 count = 0;
 return nationnum;
}
20 2015-06-04 12:44:02 0
자바 프로젝트 하다가 막혔는데요.. [새창]
2015/06/04 11:46:47
하다못해 String str = null; 하고 if(str.equals("")) 해도 NullPointer가 나옵니다. 널에서는 아무것도 호출할 수가 없어요. 동적 할당된 값이 없기떄문에
19 2015-06-04 12:42:31 0
자바 프로젝트 하다가 막혔는데요.. [새창]
2015/06/04 11:46:47
파일로 입력받는다고 하셨는데... 일단 nation[0]은 null입니다. null에서 read메서드를 호출한다는게 말이 안되죠
18 2015-06-04 12:39:27 0
자바 프로젝트 하다가 막혔는데요.. [새창]
2015/06/04 11:46:47
당연합니다. nation list1[] = new nation[20]; 이렇게 생성하고 나면 내부의 모든 값은 다 null입니다.

따라서 for문을 돌려주세요

for(int i=0; i<nation.length; i++){
nation[i] = new nation();
}

그리고 클래스명은 제발 대문자로 시작해주세요 -_-;
17 2015-06-04 00:20:11 1
for(int i ;;) 에서 i의 의미 [새창]
2015/06/04 00:16:44
저도 iterator의 약어라고 알고 있음... 그리고 처음 for문 배울때 int i=0부터 배워서 자연스럽게 ㄷㄷㄷ
16 2015-06-03 16:56:05 0
질문 있습니다 오늘 첨시작이에여 [새창]
2015/06/02 22:27:26
15이후에는 무작 도시면 서버 통합입니다.
15 2015-06-03 13:07:45 0
혹시 USB 64GB 많이 쓰나요 ㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷ [새창]
2015/06/03 12:16:33
128은 시기상조라지만; 64는 많이들 쓰는데요
14 2015-06-03 13:04:22 0
[새창]
윗분 말대로 싱글톤 패턴 쓰시면 됩니다. 그런 부분들을 위해 디자인 패턴이라는게 있으니까요
13 2015-06-02 23:36:02 0
정말죄송한데.. 한번만더 여쭤볼께요 [새창]
2015/06/02 23:14:44
C는 초기화를 안하면 쓰레기값 들어간다던데 ㄷㄷ
12 2015-06-02 23:08:53 0
노트4 데이터 질문좀할게요 [새창]
2015/06/02 22:40:59
전 항상 많이 남던데; 뭔가 어플이 실행중이신가봐요
11 2015-06-02 16:17:45 0
WOW 하려고 그래픽 카드 하나 사려고 합니다. [새창]
2015/06/02 14:59:20
그렇군요 ㄷㄷㄷ 960 사서 쓰다가 중고로 팔고 나중에 980이나 970사려고 했는데 고민 좀 해봐야겠네요;
10 2015-06-02 10:46:51 0
[본삭금] 자바 포함 문제..? [새창]
2015/06/01 23:33:56
제가 맞는건지 틀린건지 모르겠지만 아니면 뭐 이걸 원하시나요?

public class DeckTest {
 class Card {
  static final int KIND_MAX = 4; // 카드 무늬의 수
  final static int NUM_MAX = 13; // 무늬별 카드 수
  static final int SPADE = 4;
  static final int DIAMonD = 3;
  static final int HEART = 2;
  static final int CLOVER = 1;

  int kind;
  int number;

  Card() {
   this(SPADE, 1);
  }

  Card(int kind, int number) {
   this.kind = kind;
   this.number = number;
  }

  public String toString() {
   String kind = "";
   String number = "";

   switch (this.kind) {
   case 4:
    kind = "SPADE";
    break;
   case 3:
    kind = "DIAMOND";
    break;
   case 2:
    kind = "HEART";
    break;
   case 1:
    kind = "CLOVER";
    break;
   default:
   }
   switch (this.number) {
   case 13:
    number = "K";
   case 12:
    number = "Q";
   case 11:
    number = "J";
   default:
    number = this.number + "";
   }
   return "kind:" + kind + ",number:" + number;
  }
 }

 class Deck {
  final int CARD_NUM = 52; // 카드의 개수
  Card c[] = new Card[CARD_NUM];

  Deck() { // Deck의 카드를 초기화시킨다.
   int i = 0;

   for (int k = Card.KIND_MAX; k > 0; k--) {
    for (int n = 1; n < Card.NUM_MAX + 1; n++) {
     c[i++] = new Card(k, n);

    }
   }
  }

  Card pick(int index) { // 지정된 위치(index)에 있는 카드 하나 선택
   if (0 <= index && index < CARD_NUM)
    return c[index];
   else
    return pick();
  }

  Card pick() { // Deck에서 카드 하나를 선택한다.
   int index = (int) (Math.random() * CARD_NUM);
   return pick(index);
  }

  void shuffle() { // 카드의 순서를 섞는다.
   for (int n = 0; n < 1000; n++) {
    int i = (int) (Math.random() * CARD_NUM);
    Card temp = c[0];
    c[0] = c[i];
    c[i] = temp;
   }
  }
 }

 public static void main(String[] args) {
  DeckTest dt = new DeckTest();
  Deck d = dt.new Deck(); // 카드 한벌(Deck)를 만든다
  Card c = d.pick(0); // 섞기 전에 제일 위에 카드를 뽑는다.
  System.out.println(c); // System.out.println(c.toString());와같다
  d.shuffle();
  c = d.pick(0);
  System.out.println(c);
 }
}
9 2015-06-02 10:43:28 0
[본삭금] 자바 포함 문제..? [새창]
2015/06/01 23:33:56
왜 Decktest라는 클래스 안에 이너클래스형태로 Card와 Deck을 넣은건지 궁금하군요 특별한 이유라도 있나요?
Card클래스와 Deck클래스를 밖으로 빼내셔야합니다. 지금 Deck deck = new Deck(); 이것도 좀 말이 안되는것 같습니다.
만약 메인 메서드 안에서 만든다면
Decktest decktest = new Decktest();
Deck deck = decktest.new Deck();
이런식으로 만들어져야합니다.
class Card {
 static final int KIND_MAX = 4; // 카드 무늬의 수
 final static int NUM_MAX = 13; // 무늬별 카드 수

 static final int SPADE = 4;
 static final int DIAMonD = 3;
 static final int HEART = 2;
 static final int CLOVER = 1;

 int kind;
 int number;

 Card() {
  this(SPADE, 1);
 }

 Card(int kind, int number) {
  this.kind = kind;
  this.number = number;
 }

 public String toString() {
  String kind = "";
  String number = "";

  switch (this.kind) {
  case 4:
   kind = "SPADE";
   break;
  case 3:
   kind = "DIAMOND";
   break;
  case 2:
   kind = "HEART";
   break;
  case 1:
   kind = "CLOVER";
   break;
  default:
  }
  switch (this.number) {
  case 13:
   number = "K";
  case 12:
   number = "Q";
  case 11:
   number = "J";
  default:
   number = this.number + "";
  }
  return "kind:" + kind + ",number:" + number;
 }
}

class Deck {
 final int CARD_NUM = 52; // 카드의 개수
 Card c[] = new Card[CARD_NUM];

 Deck() { // Deck의 카드를 초기화시킨다.
  int i = 0;

  for (int k = Card.KIND_MAX; k > 0; k--) {
   for (int n = 1; n < Card.NUM_MAX + 1; n++) {
    c[i++] = new Card(k, n);

   }
  }
 }

 Card pick(int index) { // 지정된 위치(index)에 있는 카드 하나 선택
  if (0 <= index && index < CARD_NUM)
   return c[index];
  else
   return pick();
 }

 Card pick() { // Deck에서 카드 하나를 선택한다.
  int index = (int) (Math.random() * CARD_NUM);
  return pick(index);
 }

 void shuffle() { // 카드의 순서를 섞는다.
  for (int n = 0; n < 1000; n++) {
   int i = (int) (Math.random() * CARD_NUM);
   Card temp = c[0];
   c[0] = c[i];
   c[i] = temp;
  }
 }
}

public class DeckTest {
 public static void main(String[] args) {
  Deck d = new Deck(); // 카드 한벌(Deck)를 만든다
  Card c = d.pick(0); // 섞기 전에 제일 위에 카드를 뽑는다.
  System.out.println(c); // System.out.println(c.toString());와같다
  d.shuffle();
  c = d.pick(0);
  System.out.println(c);
 }
}
8 2015-06-01 10:19:52 0
자바(eclipse)에도 %2d과 같은 문법이 있나요? [새창]
2015/06/01 03:11:45
헌데 예를 들어
System.out.println("hello%10dhi"); 라는 문장을 사용하면 출력이
hello hi
처럼 되어야 하지 않나요?
저는 hello%10dhi 그대로 출력 되어버리는데 무슨 문제가 있나요?
-----------------------------------------------------------------
System.out.printf("hello%10shi", " ");
이러셔도 됩니다. ㄷㄷㄷ
< 이전페이지 다음페이지 >
< 6 7 8
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호