撲克游戲?qū)崿F(xiàn)2019-08-09

目的:

為完成游戲的所有功能,而逐步實現(xiàn)各項功能,進(jìn)而學(xué)習(xí)了單例設(shè)計模式,以及數(shù)組的真實內(nèi)存等重要知識點,把這些知識點柔和進(jìn)去完善這個小工程。

技術(shù):

1.單例設(shè)計模式:

(1).單例對象的類必須保證只有一個實例存在,而且自行實例化并向整個系統(tǒng)提供這個實例
(2).使用場景:確保某個類有且只有一個對象的常見,避免產(chǎn)生多個對象消耗過多的資源或者某種類型的對象只應(yīng)該有且只有一個。
(3).實現(xiàn)單例模式主要有如下幾個關(guān)鍵點:
①構(gòu)造函數(shù)不對外開放,一般為private
②通過一個靜態(tài)方法或者枚舉返回單例類對象
③確保單例類的對象有且只有一個,尤其是在多線程環(huán)境下
(4)餓漢式
,,,
public class Test {
public static void main(String[] agrs) {
//Poker p = new Poker();

    //餓漢式   (進(jìn)來就創(chuàng)建一個對象)
    //1.正常情況下創(chuàng)建一個對
    Poker.shaerd.test();//shared為共有的啊

    //懶漢式    (要用時在創(chuàng)建)
    //Player.getInstance();//即可得到一個對象
    Player.getInstance().count +=1;

    Player p = Player.getInstance();
    p.count += 1;
    Player p1 = Player.getInstance();
    p1.count += 1;


    System.out.print(p1.count);
    //應(yīng)為3,count、p.count、p1.count都使count+=1
}

}
,,,


image.png

(5)懶漢式:
,,,
class Player{
public int count;

//2.創(chuàng)建靜態(tài)變量
private static  Player shared = null;

//1.私有構(gòu)造函數(shù)
private Player(){};

//3提供給外部一個訪問的方法
//懶漢式
public static Player getInstance(){
    Object b = new Object();   //加鎖 使多線程使用時更安全
    synchronized (b) {
        if (shared == null) {
            //如果沒有創(chuàng)建 那么就創(chuàng)建一個
            shared = new Player();
        }
    }
        return shared;
}

}
,,,

2.數(shù)組的真實內(nèi)存:

數(shù)組里面保存的都是對象的引用(指針 地址)
改變數(shù)組里面的屬性變量
原始對象的值也跟著改變
因為大家都是指向同一個內(nèi)存空間
,,,
class Test2{
public static void main(String[] agrs){

    ArrayList<Person> people = new ArrayList<>();

    //添加數(shù)據(jù)
    Person xw = new Person();
    people.add(xw);

    Person zs = new Person();
    people.add(zs);

    //訪問數(shù)據(jù)
    Person xw2 = people.get(0);//取出xw進(jìn)行保存
    xw2.name = "小王";
    System.out.println(xw2.name);
    System.out.println(xw.name); //均為小王
}

}

class Person{
public String name;
}
,,,

實際編程:撲克游戲的實現(xiàn)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,674評論 1 32
  • 設(shè)計模式分類 總體來說設(shè)計模式分為三大類:創(chuàng)建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原...
    lifeline丿毅閱讀 1,348評論 0 2
  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學(xué)習(xí)記錄文檔,今天18年5月份再次想寫文章,發(fā)現(xiàn)簡書還為我保存起的...
    Jenaral閱讀 3,146評論 2 9
  • 小編費力收集:給你想要的面試集合 1.C++或Java中的異常處理機制的簡單原理和應(yīng)用。 當(dāng)JAVA程序違反了JA...
    八爺君閱讀 5,234評論 1 114
  • 一、基礎(chǔ)知識:1、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機...
    殺小賊閱讀 2,569評論 0 4

友情鏈接更多精彩內(nèi)容