java在不同類(lèi)中調(diào)用一個(gè)集合,發(fā)牌方法調(diào)用撲克牌類(lèi)里的list為0???
--------首先是撲克牌類(lèi)的list集合, ----------------------------------------------------------
package cardGame;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ShuffleAllCards {
public List<String> cards;
public ShuffleAllCards(){
this.cards = new ArrayList<String>();
}
/**
* 生成所有52張牌
* */
public void CardsCreate(){
System.out.println("-----------游戲開(kāi)始!-----------");
//通過(guò)遍歷得到所有52張牌.
String[] number = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};?
String[] color = {"黑桃","紅桃","梅花","方塊"};
for(int i=0;i<number.length;i++){
for (int j = 0; j < color.length; j++) {
//第一個(gè)是 黑桃A, 然后 紅桃A,?
String OneCard = color[j]+number[i];
//每一次都加到List里,list是有序的.
cards.add(OneCard);
}
}
if(cards.size() == 52){
System.out.println("-----------生成撲克牌成功-------");
}
}
/**
* 打亂所有52張牌的順序
* */
public void ShuffleCards(){
System.out.println("-----------開(kāi)始洗牌-----------");
Collections.shuffle(cards);
System.out.println(cards.size());? //-----------------------這里輸出的是52,是對(duì)的--------------------
System.out.println("-----------洗牌結(jié)束-----------");
}
}
---然后在游戲類(lèi)里的發(fā)牌方法里調(diào)用上面的list集合,給玩家的手牌, 想先看看list的大小, 居然是0,但是在撲克牌類(lèi)里是52呀...-------------
package cardGame;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class LetUsPlay {
Scanner console = new Scanner(System.in);
//定義一個(gè)玩家List
public List<Players> players;
public LetUsPlay() {
//初始化玩家List
players = new ArrayList<Players>();
}
/**
* 創(chuàng)建玩家方法
* */
public void CreatePlayers(){
System.out.println("-----------登記玩家信息-----------");
System.out.println("一共有幾位玩家呢?");
int playerCounter = console.nextInt();
for(int i=0;i<playerCounter;i++){
//確定一共有幾個(gè)玩家
System.out.println("請(qǐng)輸入第"+(i+1)+"位玩家ID: ");
int playerId = console.nextInt();
System.out.println("請(qǐng)輸入第"+(i+1)+"位玩家姓名: ");
String playerName = console.next();
Players player = new Players(playerId,playerName);
players.add(player);
}
for (Players players : players) {
System.out.println(players.name);
}
}
/**
* 為玩家發(fā)牌,之前撲克牌已經(jīng)打亂順序了
* */
public void GiveCards(){
Players player = new Players();
ShuffleAllCards giveCards = new ShuffleAllCards();
System.out.println(giveCards.cards.size());? //-----------這里輸出的list的size是0???應(yīng)該是52呀??
}
}
2018-08-26
?new ShuffleAllCards(); 調(diào)用了構(gòu)造方法
public ShuffleAllCards(){
this.cards = new ArrayList<String>();
}
構(gòu)造方法里已經(jīng)將cards重新new了。
ShuffleAllCards 類(lèi)的引用應(yīng)該在main函數(shù)里執(zhí)行
你這里直接用cards就好了,反正是成員變量