学习内容
- setter、getter和toString方法
- 面向对象实现发牌项目
1.setter、getter和toString方法
(1)setter/getter:用来对类中被private修饰的属性访问,其中set是赋值,get是取值
(2)toString:当使用println输出一个对象时,就会去这个对象内部查找toString的方法,如果没有实现,那么就会从父类Object里面去查找toString的实现,
而Object里面默认使用 类名+@+hasCode。
2.面向对象实现发牌项目
(1)分析功能、抽取类:PokerManage和Poker
(2)开始实现功能
a.创建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 String getPic() {
return pic;
}
public void setDot(String dot) {
this.dot = dot;
}
public void setPic(String pic) {
this.pic = pic;
}
//重写toString方法
@Override
public String toString() {
return "Poker{" + "dot=‘"+dot+",pic=’"+pic+"}";
}
}
b.创建PokerManager类,管理一副牌的所有操作(生成 洗牌 显示)
import java.util.ArrayList;
import java.util.Collections;
public class PokerManager {
//保存一副牌
private ArrayList<Poker> pokers;
//实现构造方法
public PokerManager(){
//初始化数组
pokers = new ArrayList<>();
}
//生成一副牌(扑克牌 麻将)
public void gennerateOnePackOfCards() {
int index=0;
for (int i = 0; i < Constants.POKER_DOTS.length; i++) {
if (i<14) {
String dot = Constants.POKER_DOTS[i];
for (int j = 0; j < Constants.POKER_PICS.length; j++) {
if(j<4) {
String pic = Constants.POKER_PICS[j];
Poker poker = new Poker(dot, pic);
index = i * 4 + j;
if(index<52){
pokers.add(poker);}else{break;}
}else{
break;
}
}
}else{
break;
}
}
}
//显示一副牌
public void show(){
int index=0;
for (Poker poker : pokers) {
System.out.print(poker+" ");
if((index+1) % 8 == 0){
System.out.println(" ");
}
index++;
}
}
//打乱一张牌
public void shuffle(){
Collections.shuffle(pokers);
}
}
c.将固定的信息单独创建一个类保存
public class Constants {
//final 修饰成员变量 表示这是一个常量 不能被修改 所以变量名通常用大写字母表示
public static final String[] POKER_DOTS = new String[]{"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};
public static final String[] POKER_PICS = new String[]{"♠", "♥", "♣", "♦"};
}
d.main函数
import java.util.ArrayList;
import java.util.Collections;
public class PokerManager {
//保存一副牌
private ArrayList<Poker> pokers;
//实现构造方法
public PokerManager(){
//初始化数组
pokers = new ArrayList<>();
}
//生成一副牌(扑克牌 麻将)
public void gennerateOnePackOfCards() {
int index=0;
for (int i = 0; i < Constants.POKER_DOTS.length; i++) {
if (i<14) {
String dot = Constants.POKER_DOTS[i];
for (int j = 0; j < Constants.POKER_PICS.length; j++) {
if(j<4) {
String pic = Constants.POKER_PICS[j];
Poker poker = new Poker(dot, pic);
index = i * 4 + j;
if(index<52){
pokers.add(poker);}else{break;}
}else{
break;
}
}
}else{
break;
}
}
}
//显示一副牌
public void show(){
int index=0;
for (Poker poker : pokers) {
System.out.print(poker+" ");
if((index+1) % 8 == 0){
System.out.println(" ");
}
index++;
}
}
//打乱一张牌
public void shuffle(){
Collections.shuffle(pokers);
}
}
运行结果