1.分析功能、抽取类:PokerManager和Poker
2.开始实现功能
1).Poker类,管理一张牌的信息(点数 花色)
2).PokerManager类,管理一副牌的所有操作(生成 洗牌 显示)
MyClass.java
public class MyClass {
public static void main(String[] args){
//创建管理器
PokerManager manager = new PokerManager();
//生成一副牌
manager.generateOnePackOfCards();
//洗牌
manager.shuffle();
//显示
manager.show();
}
}
Poker.java
public class Poker {
private public String dot;//记录点数
private public 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方法
public String toString() {
return dot+pic;
}
}
PokerManager.java
public class PokerManager {
//保存一副牌
private ArrayList<Poker> pokers;
//实现构造方法
public PokerManager(){
//初始化数组
pokers = new ArrayList<>();
}
//生成一副牌
public void generateOnePackOfCards(){
for (int i = 0; i < Constants.POKER_DOTS.length; I++){
//取出i对应的点数
String dot = Constants.POKER_DOTS[i];
//为这个点数创建4种花色
for (int j = 0; j < Constants.POKER_PICS.length; j++){
//取出j对应的花色
String pic = Constants.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.println(poker);
if ((index+1) % 8 == 0){
System.out.println("");
}
index++;
}
}
//洗牌
public void shuffle(){
Collections.shuffle(pokers);
}
}
Constants.java
//final 修饰成员变量 表示这是一个常量 不能被更改
// 通常使用大写字母
public class Constants {
//准备一个数组保存所有的点数
public static final String[] POKER_DOTS = new String[]{"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
//花色
public static final String[] POKER_PICS = new String[]{"♥","♣","♠","♦"};
}