自己练习写了一个...有问题...(问号处)
class Pai {
char c ;  //花色
int n ;   //面值
Pai() {

}
public String toString(){
return ""+c+n+" ";
}
}public class FaiPai {
Pai[] total = new Pai[52]; //52张牌,无大小鬼
ArrayList[] player = new ArrayList[4]; //四个玩家
FaiPai() {
//total = new Pai[52];
for (int i=0;i<52;i++)
total[i] = new Pai(); for(int i = 0;i<4;i++) {
for (int j = 0;j<13;j++) {
switch(i){
case 0: total[i*13+j].c = 'f'; //方片
total[i*13+j].n = j+1;break;
case 1: total[i*13+j].c = 'c';//草花
  total[i*13+j].n = j+1;break;
case 2: total[i*13+j].c = 'h';//黑桃
  total[i*13+j].n = j+1;break;
case 3: total[i*13+j].c = 'r';//红桃
total[i*13+j].n = j+1;break;
}
}
}
}
public void send() { //发牌
int numberPai = 52 ;
int k = 0;
while(numberPai-->0) {
int j = (int)(Math.random()*52);
player[k].add(total[j]); ??????????//提示这个地方空指针异常,偶看不出来
k++;
if (k == 4)
k = 0;
total[j] = total[numberPai];
}

}
public static void main(String[] args) {
FaiPai one = new FaiPai();
System.out.println("开始发牌 :");
one.send();
for (int i=0;i<4;i++) {
System.out.println("玩家"+i+"的牌 :");
for(int j = 0;j<one.player[i].size();j++)
System.out.print(one.player[i]);
}
}
}问题就在那里了,我看不出来有什么指针异常

解决方案 »

  1.   

    在构造函数里加
    for (int i=0;i<4;i++)
    player[i] = new ArrayList();
    你的Arraylist没有初始化
    另外你发牌也不对
    应该是这样public void send() { //发牌
    int numberPai = 52 ;
    int k = 0;
    Pai tempCard;
    while(numberPai-->0) {
    int j = (int)(Math.random()*numberPai);
    //System.out.println(numberPai+": "+j);
    player[k].add(total[j]); 
    k++;
    if (k == 4) k = 0;
    //System.out.println(k);

    tempCard=total[j];
    total[j] = total[numberPai];
    total[numberPai]=tempCard;
    }
      

  2.   

    另外你main函数里
    for(int j = 0;j<one.player[i].size();j++)
    也是多余的
      

  3.   

    应该这样更简单
    public void send() { //发牌
    int numberPai = 52 ;
    int k = 0;
    while(numberPai-->0) {
    int j = (int)(Math.random()*numberPai);
    player[k].add(total[j]); 
    k++;
    if (k == 4)
    k = 0;
    total[j] = total[numberPai];
    }
      

  4.   

    问题就在那里了,我看不出来有什么指针异常
    ----------------------------------------~~~
    java就不要说是指针异常了,而是Null Point Exception~