1.Main

import java.util.List;public class Main {	/**	 * 1.面向对象思维(一张扑克)	 * 抽取共性属性	 *   花色	int	 *   牌值	int	 *   花色符号	String	 *   牌值符号	String	 * 抽取共性方法	 * 	 * 2.面向对象思维(一副扑克)	 * 抽取共性属性	 *   花色数量	int 	 *   牌的张数	int	 *   所有牌	List	 * 抽取共性方法	 *   创建扑克	 *   洗牌	 *   抽取一张	 *   分组	 *   排序	 * 1(多)--对--2(一)	 * */	public static void main(String[] args) {		/**		 * 6.创建一副扑克对象		 * */		Pukes p=new Pukes(); // 这是一副空盒		List
 list=p.createPuke(); //System.out.println(list); /**  * 7.洗牌  * */ List
 list2=p.shufferPuke(); //System.out.println(list2); /**  * 8.随机抽取一张牌  * */ Apuke a=p.getRandomPuke(); //System.out.println(a); /**  * 10.洗牌后,重新排序牌  * */ List
 list3=p.sortPuke(); System.out.println(list3); }}

2.Apuke

//一张扑克类public class Apuke implements Comparable
{ /**  * 1.定义属性  * */ private int    color;      // 花色值 private String colorText;  // 花色符号 private int    value;      // 牌值 private String valueText;  // 牌值符号 /**  * 2.创建构造方法和setter、getter方法、toString方法  * */ public Apuke(int color, String colorText, int value, String valueText) { super(); this.color = color; this.colorText = colorText; this.value = value; this.valueText = valueText; } public int getColor() { return color; } public void setColor(int color) { this.color = color; } public String getColorText() { return colorText; } public void setColorText(String colorText) { this.colorText = colorText; } public int getValue() { return value; } public void setValue(int value) { this.value = value; } public String getValueText() { return valueText; } public void setValueText(String valueText) { this.valueText = valueText; } @Override public String toString() { return "Apuke [color=" + color + ", colorText=" + colorText + ", value=" + value + ", valueText=" + valueText + "]\n"; } /**  * 9.单张扑克牌比较大小,需要实现Comparable排序接口的compareTo方法  * */ @Override public int compareTo(Apuke o) { int val=0; // 先根据花色比较 val=this.color-o.color; if(val==0) { // 在根据大小比较 val=this.value-o.value; } return val; } }

3.Pukes

import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Random;// 一副扑克public class Pukes {	/**	 * 3.定义属性	 * */	private int         pukesCount;  // 扑克张数	private int         colorCount;  // 花色数量	private List
 aList;       // 扑克牌的集合 /**  * 12.创建一个大的组,放花色组的集合  * */ private List
 cgl; public List
 getCgl() { return cgl; } public void setCgl(List
 cgl) { this.cgl = cgl; } /**  * 4.创建setter、getter方法、toString方法  * */ public int getPukesCount() { return pukesCount; } public void setPukesCount(int pukesCount) { this.pukesCount = pukesCount; } public int getColorCount() { return colorCount; } public void setColorCount(int colorCount) { this.colorCount = colorCount; } public List
 getaList() { return aList; } public void setaList(List
 aList) { this.aList = aList; } @Override public String toString() { return "Pukes [pukesCount=" + pukesCount + ", colorCount=" + colorCount + ", aList=" + aList + "]"; } /**  * 5.先把业务方法定义出来,可以先搭个架子  * */ // 5.1.创建一副扑克牌的方法 public List
 createPuke(){ pukesCount=54;                // 初始化扑克牌数量 colorCount=5 ;                // 初始化花色数量(包含王) aList=new ArrayList
(); // 初始化扑克牌集合 /*王   ♡   ■    ♠   ▲   1  2 3  4 5   A  2 3  4 5 6 7 8 9 10 J  Q  K  小王     大王   1  2 3  4 5 6 7 8 9 10 11 12 13 14   15*/ //先创建4种花色牌 for(int i=2;i<=5;i++) { for(int j=1;j<=13;j++) { String colorText=null; // 定义花色符号 String valueText=null; // 定义牌值符号 // 给花色符号赋值 switch (i) { case 2:colorText="♡";break; case 3:colorText="■";break; case 4:colorText="♠";break; case 5:colorText="▲";break; } // 给牌值符号赋值 switch(j) { case 1  : valueText="A"; break; case 2  : valueText="2"; break; case 3  : valueText="3"; break; case 4  : valueText="4"; break; case 5  : valueText="5"; break; case 6  : valueText="6"; break; case 7  : valueText="7"; break; case 8  : valueText="8"; break; case 9  : valueText="9"; break; case 10 : valueText="10";break; case 11 : valueText="J"; break; case 12 : valueText="Q"; break; case 13 : valueText="K"; break; } // 创建一张扑克对象,让后扔到扑克盒里 Apuke ap=new Apuke(i, colorText, j, valueText); aList.add(ap); } } //创建小王、大王扑克牌 Apuke ap_xiaowang=new Apuke(1, "★", 14, "♂"); aList.add(ap_xiaowang); Apuke ap_dawang=new Apuke(1, "★", 15, "♀"); aList.add(ap_dawang); return aList; } // 5.2.洗牌的方法 public List
 shufferPuke(){ Collections.shuffle(aList); return aList; } // 5.3.随机抽取一张扑克 public Apuke getRandomPuke() { Random r=new Random(); int index=r.nextInt(this.pukesCount); System.out.println(index); return aList.get(index); } // 5.4.排序所有扑克牌(先花色,在大小),所以单张扑克牌类要实现Comparable接口 public List
 sortPuke(){ Collections.sort(aList); return aList; } // 5.5.分组最后做 }