setter/getter方法::间接访问private修饰的成员变量。(快捷键:Alt+Insert)
优点:可以对外部赋值做相应的判断。
final:修饰成员变量 表示这是一个常量 不能被更改(通常使用大写字母)
toString(快捷键:Alt+Insert)当使用print输出一个对象时 就会去内部查找toString方法。如果没有实现toString,那么系统就会自动从父类Object里面去查找toString的实现。
Object里面默认使用 类名@hashCode
重写toString方法是为了在调试的时候快速获取这个对象的信息。
return后的信息可以自行更改。
扑克牌
1、分析功能、抽取类:PokerManager和Manager
2、开始实现功能:
Poker类:管理一张牌的信息(点数和花色)
public class Poker {
private String dot;//记录点数
private String pic;//记录花色
public Poker(String dot, String pic) {
this.dot = dot;
this.pic = pic;
}
public String getDot() {
return dot;
}
public void setDot(String dot) {
this.dot = dot;
}
public String getPic() {
return pic;
}
public void setPic(String pic) {
this.pic = pic;
}
@Override
public String toString() {
return dot+pic;
}
}
PokerManager类:管理一副牌的所有操作(生成、洗牌、显示)
public class PokerManager {
private Poker[] pokers;
public PokerManager(){
pokers = new Poker[52];
}
public void producePokers(){
for (int i = 0; i <Constants.DOTS.length ; i++) {
String dot = Constants.DOTS[i];
for (int j = 0; j <Constants.PICS.length ; j++) {
String pic = Constants.PICS[j];
Poker poker = new Poker(dot,pic);
pokers[i*4+j] = poker;
}
}
}
public void show(){
for (Poker poker: pokers) {
System.out.println(poker);
}
}
}
Constants类:保存固定数据(花色、点数)
public class Constants {
//点数
public static final String [] DOTS = new String[]{"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
//花色
public static final String [] PICS= new String[]{"♠","♥","♣","♦"};
}
Myclass中运行
public class Myclass {
public static void main(String[] args) {
PokerManager manager = new PokerManager();
manager.producePokers();
manager.show();
}
}
若要实现打乱扑克牌,需实现以下更改
将上方的数组遍历做以下更改
在show之前应该添加洗牌