Java作业(3.23)
1、编程题
设计一个用户类User,类中的变量有用户名、密码和记录用户数量的变量,定义3个构造方法:无参的、为用户名赋值的、为用户名和密码赋值的,还有获取和设置密码的方法和返回类信息的方法。
//设计一个用户类User,类中的变量有用户名、密码和记录 //用户数量的变量,定义3个构造方法:无参的、为用户名赋值的、为用户名和密码赋值的, //还有获取和设置密码的方法和返回类信息的方法。 public class User { private String name; private String password; private static int count;//count用于统计个数必须用static声明或全局属性 public User() { count++; } public User(String name) { this.name=name; count++; } public User(String name,String password) { this.name=name; this.password=password; count++; } public String getName() { return name; } public void setname() { this.name=name; } public String getPassword(String name){ return password; } public void setPassword() { this.password=password; } public void print(){ System.out.println("用户名:"+name+"\t"+"密码:"+password); } public void count() { System.out.println("用户个数"+(count-1)); } }
public class Test02 { public static void main(String[] args) { User user1=new User("李四","123456"); user1.print(); User user2=new User("张三","456789"); user2.print(); User user3=new User("刘苓启","666777"); user3.print(); new User().count(); } }

2、编程题
设计一副牌Poker的外部类和一张牌Card的内部类。
(1)Poker类中定义私有成员花色数组、点数数组以及一副牌的数组属性,提供构造方法(创建并初始化一副牌的数组)、随机洗牌方法shuffle(Math.random()获取[0,1)的随机数;获取[n,m)的随机数公式为Math.random()*(m-n)+n)和发牌方法deal。
(2)Card类中定义花色和点数属性,提供打印信息方法。
(3)定义测试类并在main()方法中创建一副牌Poker对象,并调用shufle()进行洗牌,调用deal()进行发牌。
public class Poker { public class Card { private String suite;// 花色 private int face;// 点数 public Card(String suite, int face) { this.suite = suite; this.face = face; } public String toString() { String faceStr = ""; switch (face) { case 1: faceStr = "A"; break; case 11: faceStr = "J"; break; case 12: faceStr = "Q"; break; case 13: faceStr = "K"; break; default: faceStr = String.valueOf(face); } return suite + faceStr; } } // Poker类 成员 private static String[] suites = { "黑桃", "红桃", "梅花", "梅花", "方块" }; private static int[] faces = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; private Card[] cards; // 构造器 public Poker() { // 构造52个Card对象 存放在cards数组中 cards = new Card[52]; for (int i = 0; i < suites.length; i++) { for (int j = 0; j < faces.length; j++) { cards[i * 13 + j] = new Card(suites[i], faces[j]); } } } // 洗牌 (随机乱序) public void shuffle() { int len = cards.length; for (int i = 0; i < len; i++) { int index = (int) (Math.random() * len); Card temp = cards[index]; cards[index] = cards[i]; cards[i] = temp; } } public Card getCard(int index) { return cards[index]; } public class Test { public static void main(String[] args) { Poker poker = new Poker(); poker.shuffle();// 洗牌 Poker.Card c1 = poker.getCard(0);// 发第一张牌 // 对于非静态内部类Card // 只有通过其外部类Poker对象才能创建Card对象 Poker.Card c2 = poker.new Card("红心", 1); System.out.println(c1);// 洗牌后的第一张 System.out.println(c2); } } }


浙公网安备 33010602011771号