Java作业2

1、编程题

设计一个用户类User,类中的变量有用户名、密码和记录用户数量的变量,定义3个构造方法:无参的、为用户名赋值的、为用户名和密码赋值的,还有获取和设置密码的方法和返回类信息的方法

复制代码
package com.sdbi.shijun;

public class User {
    
private String name;
private String password;
private static int count;
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(String name) {
    this.name=name;
    }
public String getPassword() {
    return password;
}
public void setPassword(String password) {
this.password=password;
}
public void speak() {
       System.out.print("用户名:"+name);
       System.out.println(",密码:"+password); 
}
public void count() {
    System.out.println("用户数量:"+count);
}
}
复制代码
复制代码
package com.sdbi.shijun;

public class Usertest {
    public static void main(String[] args) {
        User p=new User();
        p.speak();
        User p1=new User("shijun");
        p1.speak();
        User p2=new User("shijun","0000");
        p2.speak();
        p2.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()进行发牌。

复制代码
package com.sdbi.shijun;

public class poker {//外部类一副牌
     public class Card{//内部类一张牌
           private String huase;//花色
           private int points;//点数
         public Card (String huase,int points){
            this.huase=huase;
            this.points=points;
         }
          public String toString() {
              String faceStr="";
              switch(points) {
              case 1:
                  faceStr="A";
                  break;
              case 11:
                  faceStr="J";
                  break;    
              case 12:
                  faceStr="Q";
                  break;
              case 13:
                  faceStr="K";
                  break;
                  default:
                      faceStr=String.valueOf(points);
              }
              return huase + faceStr;
          }
     }
     private static String[] huase={"黑桃","红心","梅花","方块"};
     private static int[] points={1,2,3,4,5,6,7,8,9,10,11,12,13};
     private static Card[] cards;
     public poker() {//创建一副扑克牌
         cards=new Card[52];
         for (int i = 0; i < huase.length; i++) {
             for (int j = 0; j < points.length; j++) {
                 cards[i * 13 + j] = new Card(huase[i],points[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];
         }
     
     
}
复制代码
复制代码
package com.sdbi.shijun;

public class pokertest {
    public static void main(String[] args) {
        poker poker=new poker();
        poker.shuffle();
        poker.Card c1=poker.getCard(0);
        poker.Card c2=poker.new Card("梅花",11);
        System.out.println(c1);
        System.out.println(c2);
        }

}
复制代码
posted @   ice798  阅读(61)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示