一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

java的封裝特性

 伊朗核心 2016-07-23

封 裝(面向?qū)ο筇卣髦唬?/span>是指隱藏對象的屬性和實現(xiàn)細節(jié),僅對外提供公共訪問方式。

好處:將變化隔離;便于使用;提高重用性;安全性。

封裝原則:將不需要對外提供的內(nèi)容都隱藏起來,把屬性都隱藏,提供公共方法對其訪問。

 

this:代表對象。就是所在函數(shù)所屬對象的引用。

this到底代表什么呢?哪個對象調(diào)用了this所在的函數(shù),this就代表哪個對象,就是哪個對象的引用。

開發(fā)時,什么時候使用this呢?

在定義功能時,如果該功能內(nèi)部使用到了調(diào)用該功能的對象,這時就用this來表示這個對象。

 

this 還可以用于構(gòu)造函數(shù)間的調(diào)用。

調(diào)用格式:this(實際參數(shù))

this對象后面跟上 .  調(diào)用的是成員屬性和成員方法(一般方法);

this對象后面跟上 () 調(diào)用的是本類中的對應(yīng)參數(shù)的構(gòu)造函數(shù)。

 

注意:用this調(diào)用構(gòu)造函數(shù),必須定義在構(gòu)造函數(shù)的第一行。因為構(gòu)造函數(shù)是用于初始化的,所以初始化動作一定要執(zhí)行。否則編譯失敗。

 

static:★★★ 關(guān)鍵字,是一個修飾符,用于修飾成員(成員變量和成員函數(shù))。

特點:

1想要實現(xiàn)對象中的共性數(shù)據(jù)的對象共享??梢詫⑦@個數(shù)據(jù)進行靜態(tài)修飾。

2被靜態(tài)修飾的成員,可以直接被類名所調(diào)用。也就是說,靜態(tài)的成員多了一種調(diào)用方式。類名.靜態(tài)方式

3,靜態(tài)隨著類的加載而加載。而且優(yōu)先于對象存在。

 

弊端:

1,有些數(shù)據(jù)是對象特有的數(shù)據(jù),是不可以被靜態(tài)修飾的。因為那樣的話,特有數(shù)據(jù)會變成對象的共享數(shù)據(jù)。這樣對事物的描述就出了問題。所以,在定義靜態(tài)時,必須要明確,這個數(shù)據(jù)是否是被對象所共享的。

2靜態(tài)方法只能訪問靜態(tài)成員,不可以訪問非靜態(tài)成員。

因為靜態(tài)方法加載時,優(yōu)先于對象存在,所以沒有辦法訪問對象中的成員。

3,靜態(tài)方法中不能使用this,super關(guān)鍵字。

因為this代表對象,而靜態(tài)在時,有可能沒有對象,所以this無法使用。

4,主函數(shù)是靜態(tài)的。

 

什么時候定義靜態(tài)成員呢?或者說:定義成員時,到底需不需要被靜態(tài)修飾呢?

成員分兩種:

1,成員變量。數(shù)據(jù)共享時靜態(tài)化

該成員變量的數(shù)據(jù)是否是所有對象都一樣:

如果是,那么該變量需要被靜態(tài)修飾,因為是共享的數(shù)據(jù)。

如果不是,那么就說這是對象的特有數(shù)據(jù),要存儲到對象中。

2,成員函數(shù)。方法中沒有調(diào)用特有數(shù)據(jù)時就定義成靜態(tài)

    如果判斷成員函數(shù)是否需要被靜態(tài)修飾呢?

    只要參考,該函數(shù)內(nèi)是否訪問了對象中的特有數(shù)據(jù):

    如果有訪問特有數(shù)據(jù),那方法不能被靜態(tài)修飾。

    如果沒有訪問過特有數(shù)據(jù),那么這個方法需要被靜態(tài)修飾。

 

成員變量和靜態(tài)變量的區(qū)別:

1,成員變量所屬于對象。所以也稱為實例變量。

靜態(tài)變量所屬于類。所以也稱為類變量。

2,成員變量存在于堆內(nèi)存中。

靜態(tài)變量存在于方法區(qū)中。

3,成員變量隨著對象創(chuàng)建而存在。隨著對象被回收而消失。

靜態(tài)變量隨著類的加載而存在。隨著類的消失而消失。

4,成員變量只能被對象所調(diào)用 。

靜態(tài)變量可以被對象調(diào)用,也可以被類名調(diào)用。

所以,成員變量可以稱為對象的特有數(shù)據(jù),靜態(tài)變量稱為對象的共享數(shù)據(jù)。

 

靜態(tài)的注意:靜態(tài)的生命周期很長。

靜態(tài)代碼塊:就是一個有靜態(tài)關(guān)鍵字標(biāo)示的一個代碼塊區(qū)域。定義在類中。

作用:可以完成類的初始化。靜態(tài)代碼塊隨著類的加載而執(zhí)行,而且只執(zhí)行一次(new 多個對象就只執(zhí)行一次)。如果和主函數(shù)在同一類中,優(yōu)先于主函數(shù)執(zhí)行。

 

Public訪問權(quán)限最大。

static不需要對象,直接類名即可。

void主函數(shù)沒有返回值。

Main主函數(shù)特定的名稱。

(String[] args)主函數(shù)的參數(shù),是一個字符串?dāng)?shù)組類型的參數(shù),jvm調(diào)用main方法時,傳遞的實際參數(shù)是 new String[0]

 

jvm默認(rèn)傳遞的是長度為0的字符串?dāng)?shù)組,我們在運行該類時,也可以指定具體的參數(shù)進行傳遞。可以在控制臺,運行該類時,在后面加入?yún)?shù)。參數(shù)之間通過空格隔開。jvm會自動將這些字符串參數(shù)作為args數(shù)組中的元素,進行存儲。

 

靜態(tài)代碼塊、構(gòu)造代碼塊、構(gòu)造函數(shù)同時存在時的執(zhí)行順序:靜態(tài)代碼塊 à 構(gòu)造代碼塊 à 構(gòu)造函數(shù);

 

生成Java幫助文檔:命令格式:javadoc –d 文件夾名 –auther –version *.java

/**     //格式

*類描述

*@author 作者名

*@version 版本號

*/

/**

*方法描述

*@param  參數(shù)描述

*@return  返回值描述

*/

---------------------------------------------------------------------------------------------

設(shè)計模式:解決問題最行之有效的思想。是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計經(jīng)驗的總結(jié)。使用設(shè)計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。

 

java中有23種設(shè)計模式:

單例設(shè)計模式:★★★★★

解決的問題:保證一個類在內(nèi)存中的對象唯一性。

比如:多程序讀取一個配置文件時,建議配置文件封裝成對象。會方便操作其中數(shù)據(jù),又要保證多個程序讀到的是同一個配置文件對象,就需要該配置文件對象在內(nèi)存中是唯一的。

 

Runtime()方法就是單例設(shè)計模式進行設(shè)計的。

 

如何保證對象唯一性呢?

思想:

1,不讓其他程序創(chuàng)建該類對象。

2,在本類中創(chuàng)建一個本類對象。

3,對外提供方法,讓其他程序獲取這個對象。

 

步驟:

1,因為創(chuàng)建對象都需要構(gòu)造函數(shù)初始化,只要將本類中的構(gòu)造函數(shù)私有化,其他程序就無法再創(chuàng)建該類對象;

2,就在類中創(chuàng)建一個本類的對象;

3,定義一個方法,返回該對象,讓其他程序可以通過方法就得到本類對象。(作用:可控)

 

代碼體現(xiàn):

1,私有化構(gòu)造函數(shù);

2,創(chuàng)建私有并靜態(tài)的本類對象;

3,定義公有并靜態(tài)的方法,返回該對象。

---------------------------------------------

//餓漢式

class Single{

    private Single(){} //私有化構(gòu)造函數(shù)。

private static Single s = new Single(); //創(chuàng)建私有并靜態(tài)的本類對象。

    public static Single getInstance(){ //定義公有并靜態(tài)的方法,返回該對象。

        return s;

    }

}

---------------------------------------------

//懶漢式:延遲加載方式。

class Single2{

    private Single2(){}

private static Single2 s = null;

    public static Single2 getInstance(){

        if(s==null)

            s = new Single2();

        return s;

    }

}

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    久久综合日韩精品免费观看| 又黄又硬又爽又色的视频| 亚洲国产中文字幕在线观看| 欧美一级黄片免费视频 | 欧美日韩人妻中文一区二区 | 日韩精品一区二区三区射精| 中文字幕日韩欧美亚洲午夜| 亚洲一区二区三区中文久久| 久久精品亚洲情色欧美| 中文字幕av诱惑一区二区| 国内精品一区二区欧美| 国产精品香蕉一级免费| 老司机精品视频免费入口| 国产高清三级视频在线观看| 热情的邻居在线中文字幕| 久久久精品区二区三区| 日韩一区二区三区免费av| 很黄很污在线免费观看| 日本加勒比在线观看一区| 亚洲在线观看福利视频| 少妇特黄av一区二区三区| 日韩精品中文字幕亚洲| 美女极度色诱视频在线观看| 亚洲二区欧美一区二区 | 免费大片黄在线观看日本| 亚洲美女国产精品久久| 欧美日韩有码一二三区| 久久福利视频视频一区二区| 在线观看国产成人av天堂野外| 高清免费在线不卡视频| 国产成人午夜在线视频| 中国美女偷拍福利视频| 成年人黄片大全在线观看| 精品少妇人妻一区二区三区| 黄男女激情一区二区三区| 欧美成人免费一级特黄| 内用黄老外示儒术出处| 美女露小粉嫩91精品久久久| 亚洲国产成人精品一区刚刚| 日韩在线视频精品中文字幕| 亚洲国产精品一区二区|