编程所涉及到的知识点已经在后面做了注释
(1)poker类,管理一张牌的信息(点数和花色)
/**
*点数2 3 4 5 6 7 8 9 10 j Q K A
*/
public class poker {
String dot;
String pic;
//提供构造方法
public poker (String dot,String pic){
this.dot=dot;
this.pic=pic;
}
//set和get方法
public String getDot() {
return dot;
}
public void setDot(String dot) {
this.dot = dot;
}
public String getPic() {
return pic;
}
public void setPic(String pic) {
this.pic = pic;
}
//重写toString方法便于调试
@Override
public String toString() {
return dot+pic;
}
public static void main(String[] args) {
Calendar now=Calendar.getInstance();
int year=now.get(Calendar.MONTH);
System.out.println(year);
}
}
(2)pokermanger类,管理一副牌的所有操作(生成 显示 洗牌)
public class pokermanger {
//保存一副牌
private ArrayList pokers;
//重写构造方法
public pokermanger(){
//初始化数组
pokers =new ArrayList<>();
}
//生成一副牌
public void genersteonepackofcards(){
for (int i=0;i
//取出i对应的点数
String dot=constabts.POKER_DOTS[i];
//为这个点数创建4种花色
for(int j=0;j
//取出j对应的花色
String pic =constabts.POKER_PICS[j];
//创建一张牌
poker poker=new poker(dot,pic);
//保存这张牌
int index=i*4+j;
pokers.add(poker);
}
}
}
//显示一副牌
public void show(){
int index=0;
for(poker poker:pokers){
System.out.print(poker);
if ((index+1)%4==0){
System.out.println(" ");
}
index++;
}
}
//洗牌
public void shuffle(){
Collections.shuffle(pokers);//其替换规则就是取最后的一个数和前面随机的数进行替换,换了之后又使得
//前一位数和前面的随机的一位数进行替换,直到换到第一位
}
}
(3)constabts类,寄存牌的花色和点数
public class constabts { //准备一个数组保存所有的点数
public static final String[]POKER_DOTS= new String[]{//由于有static来修饰,则可直接用类来表示
"2", "3", "4", "5",
"6", "7", "8", "9"
, "10", "J", "Q",
"K", "A"};
//花色
public static String[] POKER_PICS= new String[]{"♣", "♠", "♥", "♦"};
/**
*这里的static表示的是此成员变量属于这个类
* 优先于对象被创建
* 可以直接使用此类来进行调用
* 利用final修饰此成员变量 表示此成员为常量 不能被更改
* 通常用大写的字母表示
*/
}
(4)myclass类,实现main函数,作为实现的类
public class Myclass {
public static void main(String[] args) {
//创建管理器
pokermanger manger=new pokermanger();
//生成一副牌
manger.genersteonepackofcards();
//洗牌
manger.shuffle();
//显示
manger.show();
}