小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

好程序員大數(shù)據(jù)實(shí)用教程之面向?qū)ο筮M(jìn)階

 好程序員IT 2019-12-11

好程序員大數(shù)據(jù)實(shí)用教程之面向?qū)ο筮M(jìn)階:包的創(chuàng)建與使用

> 是對(duì)一個(gè)程序中指定功能的部分代碼進(jìn)行包裝

構(gòu)造方法

> 是一個(gè)方法

>

> 特殊點(diǎn):

>

> 1. 構(gòu)造方法沒(méi)有返回值,不是指的返回值類(lèi)型是void,而是根本就不寫(xiě)返回值類(lèi)型

> 2. 方法名字和類(lèi)名相同

> 3. 構(gòu)造方法不能用static來(lái)修飾

>

> 構(gòu)造方法調(diào)用的時(shí)機(jī):

>

> 1. 通俗來(lái)講:是在實(shí)例化一個(gè)對(duì)象的時(shí)候調(diào)用的

>

> 一般情況下,我們?cè)跇?gòu)造方法中做什么:

>

> 1. 對(duì)對(duì)象的某一些屬性進(jìn)行初始化賦值操作

> 實(shí)例化對(duì)象的過(guò)程:

>

> Person xiaoming = new Person();

>

> new : 表示在堆上開(kāi)辟空間

>

> 執(zhí)行非靜態(tài)代碼段

>

> 然后再執(zhí)行構(gòu)造方法:

> 在構(gòu)造方法中調(diào)用其他的構(gòu)造方法

>

> > 可以使用this()的方式來(lái)調(diào)用其他的構(gòu)造方法

> >

> > 注意事項(xiàng):

> >

> > 1. this() 必須寫(xiě)在構(gòu)造方法的第一行

> > 2. 不能循環(huán)調(diào)用

>

> 無(wú)參構(gòu)造方法需要注意的問(wèn)題

>

> > 1. 如果一個(gè)類(lèi)中沒(méi)有寫(xiě)構(gòu)造方法,此時(shí)這個(gè)類(lèi)具有一個(gè)默認(rèn)的public權(quán)限的無(wú)參構(gòu)造方法

> > 2. 如果一個(gè)類(lèi)中寫(xiě)構(gòu)造方法了,此時(shí)這個(gè)默認(rèn)的public權(quán)限的無(wú)參構(gòu)造方法將不再提供

代碼塊

> 非靜態(tài)代碼段

>

> **靜態(tài)代碼段**

>

> ```java

> static {

>     

> }

> // 當(dāng)這個(gè)類(lèi)第一次被加載到內(nèi)存中的時(shí)候執(zhí)行

> // 當(dāng)你第一次使用這個(gè)類(lèi)的時(shí)候執(zhí)行(實(shí)例化對(duì)象、調(diào)用靜態(tài)方法...)

> ```

private關(guān)鍵字與屬性封裝

> 是一種編程思想:

>

>  狹義上的封裝:

>

> 一個(gè)類(lèi)中的某一些屬性,我們不希望外界直接訪(fǎng)問(wèn)。(外界賦的值可能不是我們想要的值)。此時(shí),我們可以將這個(gè)屬性私有化(private),杜絕了外界直接訪(fǎng)問(wèn)這個(gè)屬性的可能性。但是我們還需要再去提供用來(lái)訪(fǎng)問(wèn)這個(gè)屬性的方法。(設(shè)置值、獲取值)(setter/getter)

>

>

>

>  **private:**

>

> 是訪(fǎng)問(wèn)權(quán)限修飾符的其中之一,可以用來(lái)修飾屬性和方法。被private修飾的成員,只能夠在當(dāng)前的類(lèi)中訪(fǎng)問(wèn)

**單例設(shè)計(jì)模式**

> 設(shè)計(jì)模式:

>

> 是前人總結(jié)出來(lái)的,用來(lái)解決特定問(wèn)題的一個(gè)解決方案。

>

> 單例設(shè)計(jì)模式:

>

> 用來(lái)解決,在不同的模塊中,我們需要訪(fǎng)問(wèn)到同一個(gè)類(lèi)的同一個(gè)對(duì)象。

>

>  

>

> 關(guān)于私有化構(gòu)造方法:

>

> 其實(shí)這個(gè)操作,在單例中是不必須的。

1. 餓漢式

   ```java

   /**

    * 在這個(gè)單例設(shè)計(jì)的過(guò)程中,只要我們用到了這個(gè)User類(lèi),instance都會(huì)實(shí)例化

    * 此時(shí),instance可能我們并不會(huì)使用到。所以會(huì)造成一定程度上的性能損耗。

    */

   class User {

       // 聲明一個(gè)私有的、靜態(tài)的、當(dāng)前類(lèi)的對(duì)象,并實(shí)例化

       // 因?yàn)檫@個(gè)instance是靜態(tài)的,實(shí)例化的過(guò)程只會(huì)執(zhí)行一次

       private static User instance = new User();

       // 提供一個(gè)public權(quán)限的、靜態(tài)的、返回當(dāng)前類(lèi)對(duì)象的方法

       public static User getUser() {

           // 將剛才實(shí)例化的instance返回,因?yàn)檫@個(gè)instance只會(huì)實(shí)例化一次,所以無(wú)論這個(gè)方法執(zhí)行多少次,最終返回的結(jié)果都是同一個(gè)對(duì)象

           return instance;

       }

   }

   ```

2. 懶漢式

   ```JAVA

   /**

    * 使用的時(shí)候再去實(shí)例化instance,沒(méi)有多余的資源浪費(fèi)

    * 這種方式,在多線(xiàn)程環(huán)境中有問(wèn)題

    */

   class User {

       // 聲明一個(gè)私有的、靜態(tài)的、當(dāng)前類(lèi)的對(duì)象,不對(duì)他進(jìn)行實(shí)例化

       // 什么時(shí)候需要獲取這個(gè)對(duì)象的時(shí)候,再去實(shí)例化

       private static User instance;

       // 提供一個(gè)public權(quán)限的、靜態(tài)的、返回當(dāng)前類(lèi)對(duì)象的方法

       public static User getUser() {

           // 在使用的時(shí)候,判斷instance是不是null, 如果是,對(duì)他做實(shí)例化,如果不是,直接使用即可

           if (instance == null)

               instance = new User();

           return instance;

       }

   }

   ```

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多