2011-05-01 70 views
1
import java.util.ArrayList; 
import java.util.Collections; 

public class Cards 
{ 
    public static enum cards 
    { 
     D_A, D_2, D_3, D_4, D_5, D_6, D_7, D_8, D_9, D_10, D_J, D_Q, D_K, 
     H_A, H_2, H_3, H_4, H_5, H_6, H_7, H_8, H_9, H_10, H_J, H_Q, H_K, 
     C_A, C_2, C_3, C_4, C_5, C_6, C_7, C_8, C_9, C_10, C_J, C_Q, C_K, 
     S_A, S_2, S_3, S_4, S_5, S_6, S_7, S_8, S_9, S_10, S_J, S_Q, S_K, 
    } 

    public Cards() 
    { 
     ArrayList<cards> deck; 
     deck = new ArrayList<cards>(51); 
     for (cards card : cards.values()) 
     { 
      deck.add(card); 
     } 
     Collections.shuffle(deck); 
     String img = deck.get(2).toString()+".gif";  
     System.out.println(img); 
    } 

    public static void main(String[] args) 
    { 
     Cards CardDeck = new Cards(); 
    } 
} 

我想访问不同类中的数组列表。我怎样才能做到这一点?如何从Java中的其他类访问数组列表?

回答

1

要访问ArrayList,需要将该列表作为类的成员。 然后,您需要建立一个访问器方法,或者将该成员变量设为public(不推荐)。

第一个解决方案在这里提供:

public class Cards 
{ 
    private ArrayList<cards> deck; 

    public static enum cards 
    { 
     D_A, D_2, D_3, D_4, D_5, D_6, D_7, D_8, D_9, D_10, D_J, D_Q, D_K, 
     H_A, H_2, H_3, H_4, H_5, H_6, H_7, H_8, H_9, H_10, H_J, H_Q, H_K, 
     C_A, C_2, C_3, C_4, C_5, C_6, C_7, C_8, C_9, C_10, C_J, C_Q, C_K, 
     S_A, S_2, S_3, S_4, S_5, S_6, S_7, S_8, S_9, S_10, S_J, S_Q, S_K, 
    } 

    public Cards() 
    { 
     deck = new ArrayList<cards>(51); 
     for (cards card : cards.values()) 
     { 
      deck.add(card); 
     } 
     Collections.shuffle(deck); 
     String img = deck.get(2).toString()+".gif";  
     System.out.println(img); 
    } 
    public ArrayList <cards> getDeck() { 
     return deck; 
    } 
    public static void main(String[] args) 
    { 
     Cards CardDeck = new Cards(); 
    } 
} 
4

使用Cards.cards.D_A或无论你想要什么。如果它们不在同一个包中,请不要忘记导入课程...

+0

+1先用最好的。我每次都会收到人工验证*我今天回答,这只是不公平。 – 2011-05-01 02:04:13

+0

所以如果我只是想整个列表youd把Cards.cards? – gheystyle 2011-05-01 02:13:22

+2

这将如何声明此枚举类型的变量 - Cards.cards myCard = Cards.cards.D_A。在这里看到更多:http://download.oracle.com/javase/1.5.0/docs/guide/language/enums.html – MByD 2011-05-01 02:16:40

3

由于它是静态的,Cards.cards应该可以工作。

+0

几个小时前我得到了10次...所以我知道你的感受+1 :) – MByD 2011-05-01 02:06:20

+0

+1 @jcomeau_ictx – Boro 2011-05-01 02:26:56