编写程序,创建扑克牌类Card,要求①重写构造方法,创建对象时从一副牌52张(不含大小王)中随机抽取一张

编写程序,创建扑克牌类Card,要求①重写构造方法,创建对象时从一副牌52张(不含大小王)中随机抽取一张,第1张

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代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9849722.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存