學(xué)習(xí)內(nèi)容
- setter、getter和toString方法
- 面向?qū)ο髮?shí)現(xiàn)發(fā)牌項(xiàng)目
1.setter舰绘、getter和toString方法
(1)setter/getter:用來對(duì)類中被private修飾的屬性訪問,其中set是賦值,get是取值
(2)toString:當(dāng)使用println輸出一個(gè)對(duì)象時(shí),就會(huì)去這個(gè)對(duì)象內(nèi)部查找toString的方法烹植,如果沒有實(shí)現(xiàn),那么就會(huì)從父類Object里面去查找toString的實(shí)現(xiàn)愕贡,
而Object里面默認(rèn)使用 類名+@+hasCode草雕。
2.面向?qū)ο髮?shí)現(xiàn)發(fā)牌項(xiàng)目
(1)分析功能、抽取類:PokerManage和Poker
(2)開始實(shí)現(xiàn)功能
a.創(chuàng)建Poker類固以,管理一張牌的信息(點(diǎn)數(shù)和花色)
public class Poker {
private String dot;//記錄點(diǎn)數(shù)
private String pic;//記錄花色
//提供構(gòu)造方法
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.創(chuàng)建PokerManager類墩虹,管理一副牌的所有操作(生成 洗牌 顯示)
import java.util.ArrayList;
import java.util.Collections;
public class PokerManager {
//保存一副牌
private ArrayList<Poker> pokers;
//實(shí)現(xiàn)構(gòu)造方法
public PokerManager(){
//初始化數(shù)組
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.將固定的信息單獨(dú)創(chuàng)建一個(gè)類保存
public class Constants {
//final 修飾成員變量 表示這是一個(gè)常量 不能被修改 所以變量名通常用大寫字母表示
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函數(shù)
import java.util.ArrayList;
import java.util.Collections;
public class PokerManager {
//保存一副牌
private ArrayList<Poker> pokers;
//實(shí)現(xiàn)構(gòu)造方法
public PokerManager(){
//初始化數(shù)組
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);
}
}
運(yùn)行結(jié)果
運(yùn)行結(jié)果.png