为了账号安全,请及时绑定邮箱和手机立即绑定

Java中调用另一个类的数组总是出错,为什么呢?

Java中调用另一个类的数组总是出错,为什么呢?

qq_梦飘雪_03155624 2016-04-09 15:11:55
package pai;、、主类public class pai { public static void main(String[] args) { // TODO Auto-generated method stubcreat puke=new creat();//创建顺序牌并输出puke.dingyi();xipai xi1=new xipai();xi1.xi(); }}package pai;public class creat{ String []puke=new String[52]; public void dingyi(){    int c=0;  for(int a=0;a<4;a++){  switch (a) {  case 0:{   int d=1; for(int b=0;b<13;b++){ if(d<2){puke[c]="梅花"+"A";c++;  d++;} else if(d<11){   puke[c]="梅花"+d;  c++;  d++;} else if(d<=11){puke[c]="梅花"+"J";  c++;  d++;} else if(d<=12){puke[c]="梅花"+"Q";  c++;  d++;} else {puke[c]="梅花"+"K";  c++;  d++;}}  }    break;  case 1:{   int d=1; for(int b=0;b<13;b++){ if(d<2){puke[c]="方片"+"A";c++;  d++;} else if(d<11){   puke[c]="方片"+d;  c++;  d++;} else if(d<=11){puke[c]="方片"+"J";  c++;  d++;} else if(d<=12){puke[c]="方片"+"Q";  c++;  d++;} else {puke[c]="方片"+"K";  c++;  d++;}}}    break;  case 2:{    int d=1; for(int b=0;b<13;b++){ if(d<2){puke[c]="红桃"+"A";c++;  d++;} else if(d<11){   puke[c]="红桃"+d;  c++;  d++;} else if(d<=11){puke[c]="红桃"+"J";  c++;  d++;} else if(d<=12){puke[c]="红桃"+"Q";  c++;  d++;} else {puke[c]="红桃"+"K";  c++;  d++;}}}    break;  default:{   int d=1; for(int b=0;b<13;b++){ if(d<2){puke[c]="黑桃"+"A";c++;  d++;} else if(d<11){   puke[c]="黑桃"+d;  c++;  d++;} else if(d<=11){puke[c]="黑桃"+"J";  c++;  d++;} else if(d<=12){puke[c]="黑桃"+"Q";  c++;  d++;} else {puke[c]="黑桃"+"K";  c++;  d++;}}}    break;   }  }  System.out.println("------------创建扑克牌-----------");  System.out.println("------------创建扑克牌成功!-----------");  for(int e=0;e<52;e++){    System.out.printf(puke[e]);} } public String[] getPuke(){ return puke; }   }package pai;import java.util.Random;public class xipai { private Random random=new Random();//重排序,将数组中每一个的位置与随机的位置替换。public void xi(){ creat b=new creat(); String[]luanpai=new String[52]; luanpai=b.getPuke(); int rand=random.nextInt(52); for(int i=0;i<52;i++){ String c; c=luanpai[i]; luanpai[i]=luanpai[rand]; luanpai[rand]=c; } for(int e=0;e<52;e++){    System.out.printf(luanpai[e]);} } }
查看完整描述

1 回答

?
惊人三明治

TA贡献14条经验 获得超13个赞

xipai类中虽然创建了creat 对象,但是没有执行dingyi()方法,此时luanpai=b.getPuke()获取到的数组元素全是null,需要在create b = new creat(); 后先执行 b.dingyi(); 此时才能获取到顺序的puke,再执行 luanpai=b.getPuke(); 获取到的数组元素就是你想要的

查看完整回答
反对 回复 2016-09-26
  • 1 回答
  • 0 关注
  • 2890 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信