回答編集履歴

1

追記回答

2017/05/17 02:42

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -1,3 +1,43 @@
1
1
  このコードはコンパイルエラーになりますよね?エラーは見ましたか?
2
2
 
3
3
  mainの中にあるcardsとはいったい何でしょう?
4
+
5
+
6
+
7
+ ---
8
+
9
+ ###追記回答
10
+
11
+ おそらく表示されるのが`Card@xxx`みたいな形だってことですよね?
12
+
13
+ ```java
14
+
15
+ public class TestRun {
16
+
17
+
18
+
19
+ public static void main(String[] args) throws NotCardsOpenException{
20
+
21
+ CardsMount cardsmount = new CardsMount();
22
+
23
+ for(int i = 0; i < cardsmount.makeMountCards().size(); i++){
24
+
25
+ System.out.println(cardsmount.makeMountCards().get(i));
26
+
27
+ }
28
+
29
+ }
30
+
31
+ }
32
+
33
+ ```
34
+
35
+ printlnメソッドにオブジェクトが渡された場合、**そのオブジェクトのtoString()メソッド**を呼び出した結果の文字列を出力する仕組みになっています。
36
+
37
+ toString()メソッドはデフォルトでは、`クラス名@ハッシュコード`という形式の文字列となり、オブジェクトの中身とは関係ない内容になります。
38
+
39
+ なので、取得したインスタンスからカードの情報を取り出して文字列を自分で作るか、CardsクラスでtoString()メソッドをオーバーライドして好きな文字列を出力させることになります。
40
+
41
+
42
+
43
+ なお、このコードではカードの山を都合104回も作成することになり、甚だ無駄です。