3.23作业
1.
package com.sdbi.yangyang; //设计一个用户类User,类中的变量有用户名、密码和记录用户数量的变量,定义3个构造方法:无参的、为用户名赋值的、 //为用户名和密码赋值的,还有获取和设置密码的方法和返回类信息的方法。 public class User { private String name; private String password; public static int number; public User() { } public User(String name) { this.name=name; } void setName(String name) { this.name=name; if(name!=null) { number++; } } String getName() { return name; } void setPassword(String password) { this.password=password; } String getPassword() { return password; } public User(String name,String password) { this.name=name; this.password=password; number++; } public void print() { System.out.println("用户名:"+name+" "+"密码:"+password); } public void number() { System.out.println("用户个数:"+number); } }
package com.sdbi.yangyang; public class Test01 { public static void main(String[] args) { User user1=new User("张三","12345"); user1.print(); User user2=new User("李四","24687"); user2.print(); User user3=new User("王五","666666"); user3.print(); new User().number(); } }

2.
package com.sdbi.yangyang; import java.util.Arrays; //设计一副牌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 { // 一张牌Card的内部类 public class Card { private String suite;// 定义牌的花色 private String face;// 定义牌的点数 public Card(String suite, String face) { this.suite = suite; this.face = face; } // 定义toString()方法,返回扑克牌的花色和点数组合的字符串 public String toString() { return suite + face; } } // 定义私有成员花色数组、点数数组以及一副牌的数组属性 private String[] suites = { "黑桃", "红心", "梅花", "方块" }; private String[] faces = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" }; private static Card[] cards; // 创建一个外部类的构造方法,用于实现初始化一副牌的数组 public Poker() { // 定义cards 数组长度为52,用于存储52个Card内部类创建出的对象 cards = new Card[52]; // 外for循环,用于遍历出所有花色 for (int i = 0; i < suites.length; i++) { // 内for循环,用于遍历出所有的点数 for (int j = 0; j < faces.length; j++) { cards[i * 13 + j] = new Card(suites[i], faces[j]); } } } // 构造随机洗牌的方法shuffle public void shuffle() { for (int i = 0; i < cards.length; i++) { // random()方法为Math类的静态方法,可以直接用Math.random()的形式去调用 // 功能为获取[0,1)范围内数据类型为double的随机数 // 因为有double类型的随机数参与运算,故需要添加(int)将其强制转换为int类型的数据 int num = (int) (Math.random() * cards.length); Card temp = cards[num]; cards[num] = cards[i]; cards[i] = temp; } } // 构造发牌的方法deal public void deal(Card[] cards) { // 此处调用了Arrays类的toString方法,可以将数组中存储的内容以字符串的表示形式出来; // 此方法属于静态方法,可以直接用(类名)Arrays.toString()的形式来调用, // 需要传入静态的外部类成员变量作为参数,故前面定义的Card[] cards为静态成员变量 System.out.println(Arrays.toString(cards)); } public static void main(String[] args) { // 构建一个外部类对象,在构造方法的内部初始化了一副牌的数组 Poker poker = new Poker(); System.out.println("洗牌前:"); poker.deal(cards); poker.shuffle(); System.out.println("洗牌后:"); poker.deal(cards); } }

 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号