作业
设计一副牌Poker的外部类和一张牌Card的内部类。
(1)Poker类中定义私有成员花色数组、点数数组以及一副牌的数组属性,提供构造方法(创建并初始化一副牌的数组)、随机洗牌方法shuffle(Math.random()获取[0,1)的随机数;获取[n,m)的随机数公式为Math.random()*(m-n)+n)和发牌方法deal。
(2)Card类中定义花色和点数属性,提供打印信息方法。
(3)定义测试类并在main()方法中创建一副牌Poker对象,并调用shufle()进行洗牌,调用deal()进行发牌
package ruanjian; import java.util.ArrayList; import java.util.Collections; import java.util.List; class Card { } class Card1 extends Card{ private String num; private String type; public String toString() { return type+num+" "; } public Card1(String num, String type) { super(); this.num = num; this.type = type; } } class Card2 extends Card{ private String name; public String toString() { return name+" "; } public Card2(String name) { super(); this.name = name; } } public class Main1 { public static void main(String[] args) { // 创建一个集合来装牌; List<Card> b = new ArrayList<Card>(); // 创建一个数组来装牌的花色; String[] c = { "红桃", "黑桃", "方块", "梅花" }; // 分别遍历牌中带有数字的牌(2,3,4,5,6,7,8,9,10)和牌的花色; for (int i = 2; i < 11; i++) { for (int j = 0; j < c.length; j++) { // 取出花色 String c1 = c[j]; // 创建一张牌(对象),将数字和花色连接组成牌; Card d = new Card1(i + "", c1); // 将牌添加到集合中 b.add(d); } } for (int i = 0; i < c.length; i++) { String t = c[i]; Card type = new Card1("A", t); b.add(type); } // 创建一个数组来装(A,J,Q,K)的牌 String[] num = { "A", "J", "Q", "K" }; // 分别遍历(A,J,Q,K)数组和花色数组 for (int i = 0; i < num.length; i++) { for (int j = 0; j < c.length; j++) { // 创建一张牌(对象),将(A,J,Q,K)和花色连接组成牌; Card n = new Card1(num[i], c[j]); // 将牌添加到集合中 b.add(n); } } // 将“大王”,“小王”,添加到集合 b.add(new Card2("大王")); b.add(new Card2("小王")); // 将牌的顺序打乱(洗牌) Collections.shuffle(b); // 创建三个集合来分牌(发牌) List<Card> a1 = new ArrayList<Card>(); List<Card> b1 = new ArrayList<Card>(); List<Card> c1 = new ArrayList<Card>(); // 遍历装牌的集合,分别发给三个集合; for (int i = 0; i < b.size() - 3; i++) { if (i % 3 == 0) { a1.add(b.get(i)); } if (i % 3 == 1) { b1.add(b.get(i)); } if (i % 3 == 2) { c1.add(b.get(i)); } } // 分别打印出三个集合里的元素 System.out.println("林yi:" + a1); System.out.println("周驰:" + b1); System.out.println(" 阿达:" + c1); // 遍历剩下的三张底牌,并打印出底牌。 for (int i = b.size() - 3; i < b.size(); i++) { System.out.print(b.get(i) + " "); } } }

package ruanjian; //设计一个用户类User,类中的变量有用户名、密码和记录用户数量的变量,定义3个构造方法: // 无参的、为用户名赋值的、为用户名和密码赋值的,还有获取和设置密码的方法和返回类信息的方法。 public class DUY { public static void main(String args[]) { Userd user1 = new Userd(); user1.name = "李华"; user1.Password = 4785691; user1.inf(); Userd user2 = new Userd("张子健" ); user2.Password = 47895623; user2.inf(); Userd user3 = new Userd("铁山靠",445645656); user3.inf(); new Userd().dd(); } } class Userd { public String name; //定义String类型的name(用户)变量 public int Password; //定义String类型的Password(密码)变量 private static int number; //统计用户数量 public Userd() {//无参赋初值 number++; } public Userd(String name){ //赋值用户名的 this.name = name; } public Userd(String name, int Password) { number++; this.name = name; this.Password = Password; } public void inf() { System.out.println("用户名:" + name +"\t"+ " 密码:" + Password ); } public void dd(){ System.out.println("用户个数为" + number); } }


浙公网安备 33010602011771号