import javautilRandom;
public class PlayCardTest {
public String card;
private final static String[] cardType = {"方片","梅花","红桃","黑桃"};
private final static String[] cardData = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
private final static int cardNum = 52;
private static int remain = 0;
private final static String[] globalData = new String[cardNum];
static{
int i = 0;
for(int k=0;k<4;k++){
for(int j=0;j<13;j++){
globalData[i++] = StringvalueOf(k) + "-" + StringvalueOf(j);
}
}
}
public PlayCardTest(){
Random r = new Random();
int d = rnextInt(cardNum - remain);
thiscard = globalData[d];
String s = globalData[cardNum - remain - 1];
globalData[cardNum - remain - 1] = globalData[d];
globalData[d] = s;
remain++;
String[] data = thiscardsplit("-");
Systemoutprintln("牌面为:"+cardType[IntegerparseInt(data[0])]+cardData[IntegerparseInt(data[1])]);
}
public static void main(String[] args) {
PlayCardTest obj1 = new PlayCardTest();
PlayCardTest obj2 = new PlayCardTest();
String[] data1 = obj1cardsplit("-");
String[] data2 = obj2cardsplit("-");
if(IntegerparseInt(data2[0]) > IntegerparseInt(data1[0]) || IntegerparseInt(data2[1]) > IntegerparseInt(data1[1])){
Systemoutprintln("第二张牌面大");
}else{
Systemoutprintln("第一张牌面大");
}
}
}
Card[] cards = new Card[54]; // 这是一个数组,是一个普通对象。
Player[] players = new Player[3]; // 这是一个数组,是一个普通对象。
第一行,调用了数组 cards 上索引为 0 的元素的 toString 方法,对应于 Card 类的 toString 方法。
第二行,调用了数组 cards 的 toString 方法,对应于 Card[] 类的 toString 方法,继承自 Object 类。
第三行,调用了 Arrays 类的 toString 方法,传入参数是数组 cards ,具体可查找该方法的源码。
第四行,调用了数组 players 上索引为 0 的元素的 toString 方法,对应于 Player 类的 toString 方法。
第五行,调用了数组 players 的 toString 方法,对应于 Player[] 类的 toString 方法,继承自 Object 类。
第六行,调用了 Arrays 类的 toString 方法,传入参数是数组 players ,具体可查找该方法的源码。
简单说一下 ArraystoString() ,它返回是由数组内所有元素的字符串化(toString)合并而成的字符串对象。
因此:
1 不是同一个 toString 方法,任何对象都可调用自身的 toString 方法。
2 因为 Player 类的 toString 方法内曾调用了“ ArraystoString(cards) ”。
4 任何对象都可调用自身的 toString 方法,数组是对象。
5 数组是对象,一样有对应的类型,其类型一样继承自 Object 类,继承了 toString 方法。
最后,有任何疑问请追问。
public class Test {
public static void main(String args[]){
int puke[][] = new int[52][2];
for(int i = 0 ; i < 52; i++){
puke[i][0] = i+1;//牌面
puke[i][1] = 0;//0表示正面,1表示背面
}
for(int i = 2; i <= 52 ;i++){
for(int j = 0 ; j < 52; j++){
if(puke[j][0]%i==0){
puke[j][1]=Mathabs(puke[j][1]-1);//1为0,0为1;
}
}
}
for(int i = 0 ; i < 52; i++){
if(puke[i][1]==0)//为正面打印
Systemoutprintln(puke[i][0]);
}
}
}
结果为:1,4,9,16,25,36,49
以上就是关于编写程序,创建扑克牌类Card,要求①重写构造方法,创建对象时从一副牌52张(不含大小王)中随机抽取一张全部的内容,包括:编写程序,创建扑克牌类Card,要求①重写构造方法,创建对象时从一副牌52张(不含大小王)中随机抽取一张、用Java写一个扑克牌类,扑克牌有花色和大小,并且有一个tostring方法,返回扑克牌的信息、求个Memory纸牌游戏的java代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)