Java實戰(zhàn)開發(fā)篇-4 類的綜合運用

上一篇實現(xiàn)了簡單的撲克牌創(chuàng)建荧关,本篇將完成最終目的市袖,實現(xiàn)洗牌功能

首先理一下思路

產(chǎn)生一張牌——產(chǎn)生一副牌——洗牌——發(fā)牌——實現(xiàn)整個功能
這些功能則需要在類里面實現(xiàn)古戴,所以大致可以分為3個類
一個類用于管理一張牌的屬性田弥,點數(shù)和花色
一個類用于保存一副牌逞带,實現(xiàn)牌的功能
一個類用于運行整個項目(主類)

創(chuàng)建一個類Poker饮睬,管理一張牌的屬性

package poker;
//管理一張牌的信息租谈,點數(shù)和花色
public class Poker {
    private String dot;//用來記錄一張牌的點數(shù)
    private String pic;//用來記錄一張牌的花色
    static  final String [] DOTS = new String[]{"?","?","?","?"};
    static  final String [] PICS = new String[]{"3","4","5","6","7"
            ,"8","9","10","J",
            "Q","K","A","2"};
/*
這里涉及到static 和 final
1.static是靜態(tài)修飾符,在類外部調(diào)用的時候可以不用建立相應(yīng)的對象续捂,直接通過“類名.”來訪問
2.final是缺省修飾符垦垂,用缺省修飾符修飾的是常量宦搬,名字需要大寫。由于是常量劫拗,不用再通過構(gòu)造函數(shù)來初始化间校。由于花色和點數(shù)是固定存在且不會被修改的,我們可以設(shè)置為final和private
*/
    public Poker(String dot, String pic) {
        this.dot = dot;
        this.pic = pic;
    }//含有兩個參數(shù)的構(gòu)造方法页慷,this代表當(dāng)前類的對象憔足,創(chuàng)建對象之后系統(tǒng)會自動調(diào)用相應(yīng)類的構(gòu)造函數(shù)來初始化成員變量

    @Override
    public String toString() {
        return pic+dot;
    }
/*
toString方法,當(dāng)使用print輸出一個對象時酒繁,就會自動調(diào)用toString方法滓彰。如果沒有實現(xiàn),會自動調(diào)用父類的toString州袒。當(dāng)需要打印出對象的值的時候揭绑,需要重寫toString方法,否則會出現(xiàn)亂碼郎哭。
快捷鍵ctrl+enter他匪,找到toString(自行設(shè)置快捷鍵)
該方法也可以手動寫
*/
    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;
    }
}
/*
以上為get/set方法,目的是間接訪問私有對象的值
ctrl+enter為快捷鍵
*/

創(chuàng)建一個類PokerManager夸研,實現(xiàn)洗牌邦蜜、發(fā)牌功能

package poker;
import java.util.ArrayList;
import java.util.Collections;
//管理牌的所有行為
public class PokerManager {
    private ArrayList<Poker> pokers;//定義ArrayList數(shù)組來保存一副牌
    public PokerManager() {
        pokers = new ArrayList<>();
    }//構(gòu)造方法
    public void produce(){
    for(int i=0;i<Poker.DOTS.length;i++){
    for(int j=0;j<Poker.PICS.length;j++){
        String d = Poker.DOTS[i];
        String p = Poker.PICS[j];
        Poker poker = new Poker(d,p);//調(diào)用Poker的構(gòu)造方法初始化poker
        pokers.add(poker);//這樣生成一副牌,保存在數(shù)組pokers里面
    }
    }
    }//生成一副牌

    public void show(){
    for(int i = 0;i<pokers.size();i++){
        System.out.print(pokers.get(i)+" ");
        if((i+1)%17==0){//17張換一下行亥至,斗地主雛形
        System.out.print("\n");
    }
    }
    }//展示一副牌
    public void shuffle(){
        Collections.shuffle(pokers);
    }//java提供了“洗牌功能”悼沈,實質(zhì)上是打亂數(shù)組順序,此時必須使用list格式

創(chuàng)建主類運行該項目

package poker;
public class MyClass {
    public static void main(String[] args){

        PokerManager manager = new PokerManager();

        manager.produce();//生成一副牌;

        manager.shuffle();//洗牌(打亂數(shù)組順序)

        manager.show();   //發(fā)牌

    }
}
//可以看出主類很簡單了姐扮,只需要通過一個個對象來調(diào)用相應(yīng)方法即可絮供,這也是面向?qū)ο笳Z言的一個好處

運行結(jié)果


image.png

本節(jié)之后,對類與對象有了綜合的運用溶握,為之后的項目打下基礎(chǔ)

注意事項

java規(guī)定杯缺,for語句等功能需要寫在方法里面(函數(shù)),不能單獨存在睡榆,否則會報Unknown token

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末萍肆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子胀屿,更是在濱河造成了極大的恐慌塘揣,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宿崭,死亡現(xiàn)場離奇詭異亲铡,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門奖蔓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赞草,“玉大人,你說我怎么就攤上這事吆鹤〕恚” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵疑务,是天一觀的道長沾凄。 經(jīng)常有香客問我,道長知允,這世上最難降的妖魔是什么撒蟀? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮温鸽,結(jié)果婚禮上保屯,老公的妹妹穿的比我還像新娘。我一直安慰自己涤垫,他們只是感情好配椭,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著雹姊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪衡楞。 梳的紋絲不亂的頭發(fā)上吱雏,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音瘾境,去河邊找鬼歧杏。 笑死,一個胖子當(dāng)著我的面吹牛迷守,可吹牛的內(nèi)容都是我干的犬绒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼兑凿,長吁一口氣:“原來是場噩夢啊……” “哼凯力!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起礼华,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤咐鹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后圣絮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體祈惶,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了捧请。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凡涩。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖疹蛉,靈堂內(nèi)的尸體忽然破棺而出活箕,到底是詐尸還是另有隱情,我是刑警寧澤氧吐,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布讹蘑,位于F島的核電站,受9級特大地震影響筑舅,放射性物質(zhì)發(fā)生泄漏座慰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一翠拣、第九天 我趴在偏房一處隱蔽的房頂上張望版仔。 院中可真熱鬧,春花似錦误墓、人聲如沸蛮粮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽然想。三九已至,卻和暖如春欣范,著一層夾襖步出監(jiān)牢的瞬間变泄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工恼琼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留妨蛹,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓晴竞,卻偏偏與公主長得像蛙卤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子噩死,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355