カードを定義して5枚DRAW、それを表示するというところまでを作ったのですが、数値→文字列変換を他サイトで参考にして実装したところ分からない部分が出てきてしまいました。
クラスCard内のtoString()メソッドが参考にした部分で、数値で定義したマークを文字に置き換え、数字を付けてリターン、というメソッドだと思うのですが、これはどこかで呼び出さないと実行されないのではないでしょうか…?
なぜこのソースだけでコンソールに変換済みの文字が返ってくるのかわかりません。ご教示お願いします。
java
1import java.util.Random; 2 3public class Poker { 4 5 public static void main(String[] args) { 6 7 Draw draw = new Draw(); 8 Card[] cards = new Card[5]; 9 for(int i = 0; i < cards.length; i++) { 10 cards[i] = draw.draw(); //ここと 11 //ここだけで、toString()を呼び出していないのに文字に変換されて表示されるのかわからない 12 System.out.print(cards[i]); 13 } 14 } 15} 16class Card{ 17 int suit; 18 int number ; 19 20 public Card(int suit, int number) { 21 this.suit = suit; 22 this.number = number; 23 } 24 25 public int getSuit() { 26 return suit; 27 } 28 public int getNumber() { 29 return number; 30 } 31 32 public String toString() { 33 String[] name = {"ハート","ダイヤ","スペード","クラブ"}; 34 return name[suit]+number; 35 } 36} 37class Draw{ 38 Random rd = new Random(); 39 40 public Card draw() { 41 int s = rd.nextInt(4); 42 int n = rd.nextInt(13); 43 44 return new Card(s,n); 45 } 46}
クラブ2ハート1スペード10クラブ5スペード2
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/02 04:30