1. 好程序員-千鋒教育旗下高端IT職業教育品牌

      400-811-9990
      我的賬戶
      好程序員

      專注高端IT職業培訓

      親愛的猿猿,歡迎!

      已有賬號,請

      如尚未注冊?

      [JavaEE] 好程序員大數據實用教程之面向對象進階

      [復制鏈接]
      209 0
      admin 發表于 2019-12-11 14:04:24 | 只看該作者 |閱讀模式 打印 上一主題 下一主題
      好程序員大數據培訓分享實用教程之面向對象進階:包的創建與使用
      > 是對一個程序中指定功能的部分代碼進行包裝
      構造方法
      > 是一個方法
      >
      > 特殊點:
      >
      > 1. 構造方法沒有返回值,不是指的返回值類型是void,而是根本就不寫返回值類型
      > 2. 方法名字和類名相同
      > 3. 構造方法不能用static來修飾
      >
      > 構造方法調用的時機:
      >
      > 1. 通俗來講:是在實例化一個對象的時候調用的
      >
      > 一般情況下,我們在構造方法中做什么:
      >
      > 1. 對對象的某一些屬性進行初始化賦值操作
      > 實例化對象的過程:
      >
      > Person xiaoming = new Person();
      >
      > new : 表示在堆上開辟空間
      >
      > 執行非靜態代碼段
      >
      > 然后再執行構造方法:
      > 在構造方法中調用其他的構造方法
      >
      > > 可以使用this()的方式來調用其他的構造方法
      > >
      > > 注意事項:
      > >
      > > 1. this() 必須寫在構造方法的第一行
      > > 2. 不能循環調用
      >
      > 無參構造方法需要注意的問題
      >
      > > 1. 如果一個類中沒有寫構造方法,此時這個類具有一個默認的public權限的無參構造方法
      > > 2. 如果一個類中寫構造方法了,此時這個默認的public權限的無參構造方法將不再提供
      代碼塊
      > 非靜態代碼段
      >
      > **靜態代碼段**
      >
      > ```java
      > static {
      >     
      > }
      > // 當這個類第一次被加載到內存中的時候執行
      > // 當你第一次使用這個類的時候執行(實例化對象、調用靜態方法...)
      > ```
      private關鍵字與屬性封裝
      > 是一種編程思想:
      >
      >  狹義上的封裝:
      >
      > ? 一個類中的某一些屬性,我們不希望外界直接訪問。(外界賦的值可能不是我們想要的值)。此時,我們可以將這個屬性私有化(private),杜絕了外界直接訪問這個屬性的可能性。但是我們還需要再去提供用來訪問這個屬性的方法。(設置值、獲取值)(setter/getter)
      >
      >
      >
      >  **private:**
      >
      > ? 是訪問權限修飾符的其中之一,可以用來修飾屬性和方法。被private修飾的成員,只能夠在當前的類中訪問
      **單例設計模式**
      > 設計模式:
      >
      > ? 是前人總結出來的,用來解決特定問題的一個解決方案。
      >
      > 單例設計模式:
      >
      > ? 用來解決,在不同的模塊中,我們需要訪問到同一個類的同一個對象。
      >
      >  
      >
      > 關于私有化構造方法:
      >
      > ? 其實這個操作,在單例中是不必須的。
      1. 餓漢式
         ```java
         /**
          * 在這個單例設計的過程中,只要我們用到了這個User類,instance都會實例化
          * 此時,instance可能我們并不會使用到。所以會造成一定程度上的性能損耗。
          */
         class User {
             // 聲明一個私有的、靜態的、當前類的對象,并實例化
             // 因為這個instance是靜態的,實例化的過程只會執行一次
             private static User instance = new User();
             // 提供一個public權限的、靜態的、返回當前類對象的方法
             public static User getUser() {
                 // 將剛才實例化的instance返回,因為這個instance只會實例化一次,所以無論這個方法執行多少次,最終返回的結果都是同一個對象
                 return instance;
             }
         }
         ```
      2. 懶漢式
         ```JAVA
         /**
          * 使用的時候再去實例化instance,沒有多余的資源浪費
          * 這種方式,在多線程環境中有問題
          */
         class User {
             // 聲明一個私有的、靜態的、當前類的對象,不對他進行實例化
             // 什么時候需要獲取這個對象的時候,再去實例化
             private static User instance;
             // 提供一個public權限的、靜態的、返回當前類對象的方法
             public static User getUser() {
                 // 在使用的時候,判斷instance是不是null, 如果是,對他做實例化,如果不是,直接使用即可
                 if (instance == null)
                     instance = new User();
                 
                 return instance;
             }
         }
         ```


      精彩內容,一鍵分享給更多人!
      收藏
      收藏0
      轉播
      轉播
      分享
      淘帖0
      支持
      支持0
      反對
      反對0
      回復

      使用道具 舉報

      您需要登錄后才可以回帖

      本版積分規則

      關注我們
      好程序員
      千鋒好程序員

      北京校區(總部):北京市海淀區寶盛北里西區28號中關村智誠科創大廈

      深圳西部硅谷校區:深圳市寶安區寶安大道5010號深圳西部硅谷B座A區605-619

      杭州龍馳智慧谷校區:浙江省杭州市下沙經濟技術開發區元成路199號龍馳智慧谷B座7層

      鄭州校區:鄭州市二七區航海中路60號海為科技園C區10層、12層

      Copyright 2007-2019 北京千鋒互聯科技有限公司 .All Right

      京ICP備12003911號-5 京公安網11010802011455號

      請您保持通訊暢通1對1咨詢馬上開啟

      人人艹人人