面向对象编程练习

1、编程题

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

public class User {
//设计一个用户类User,类中的变量有用户名、密码和记录用户数量的变量,
//定义3个构造方法:无参的、为用户名赋值的、为用户名和密码赋值的,还有获取和设置密码的方法和返回类信息的方法。
private String name;//定义用户名
private String password;//定义密码
private static int count;//定义用户数量
public User() {}//定义无参方法
public User (String name) {
this.name = name ;
}
public User(String name , String password) {
count++;
this.name = name;
this.password = password;
}
public void print() {System.out.println("用户名:"+name+"\t"+"密码:"+password);

}
public void count() {
System.out.println("用户个数:"+count);

}
public static void main(String[] args) {
User User1 =new User("大哥","1234");
User1.print();
User User2 =new User("二哥","4321");
User2.print();
User User3 =new User("三哥","5678");
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 {
// 设计一副牌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 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(false);
}
return suite+faceStr;
}
}
private static String[]suites= {"红桃","黑桃","梅花","方片"};
private static int[]faces= {1,2,3,4,5,6,7,8,9,10,11,12,13};
private Card[]cards;
public Poker() {
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 Card {
public static void main(String[] args) {
Poker poker=new Poker();
poker.shuffle();
Poker.Card c1=poker.getCard(0);
Poker.Card c2=poker.new Card("梅花",13);
System.out.println(c1);
System.out.println(c2);
}

}

 

posted @   不想看月亮  阅读(376)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示