- 相關(guān)推薦
Java語言的內(nèi)部類
導(dǎo)語:內(nèi)部類可以保證java程序的完整性和隱秘性。以下是小編為大家整理的Java語言的內(nèi)部類,僅供參考,歡迎大家閱讀。
(1)把一個類定義在某個類中的,這個類就被稱為
內(nèi)部類,內(nèi)置類,嵌套類。
(2)訪問特點:
A:內(nèi)部類可以直接訪問外部類中的成員,因為內(nèi)部類持有外部類的引用,
格式為:外部類名.this
B:外部類要想訪問內(nèi)部類的成員,必須創(chuàng)建對象訪問。
(3)內(nèi)部類的訪問格式:
A:當(dāng)內(nèi)部類定義在外部類的成員位置,而且非私有,則可以在其他外部類中直接建立內(nèi)部類對象
格式:外部類名.內(nèi)部類名 變量名 = new 外部類對象.內(nèi)部類對象
如:Outer.Inner in = new Outer().new Inner()
B:當(dāng)內(nèi)部類在外部類成員位置,且被static修飾時
**外部其他類可直接訪問靜態(tài)內(nèi)部類的非靜態(tài)成員
格式:new 外部類名.內(nèi)部類名().內(nèi)部類成員
如:new Outer.Inner().function();
**外部其他類可直接訪問靜態(tài)內(nèi)部類的靜態(tài)成員
格式:new 外部類名.內(nèi)部類名.內(nèi)部類成員
如:new Outer.Inner.function();
(4)什么使用時候內(nèi)部類呢?
假如有A類和B類,A類想直接訪問B類的成員,B類訪問A類成員的時候,
需要創(chuàng)建A類對象進(jìn)行訪問,這個時候,就可以把A類定義為B類的內(nèi)部類。
(5)內(nèi)部類的位置
A:成員位置
**可以被private修飾(Body,Heart)
**可以被static修飾。(它訪問的外部類的成員必須是靜態(tài)的)
B:局部位置
**可以直接訪問外部類中的成員,因為還持有外部類的持用
也可以直接訪問局部成員,但是局部成員要用final修飾。
注意:局部內(nèi)部類不能用private和static修飾
(6)通過class文件我們就可以區(qū)分是否帶有內(nèi)部類,以及內(nèi)部類的位置
Outer$Inner:成員內(nèi)部類
Outer$1Inner:局部內(nèi)部類
Java語言優(yōu)點
Java語言最大的優(yōu)點是它的跨平臺性。一次編寫,到處運(yùn)行。能始終如一的在任何平臺上運(yùn)行,使得系統(tǒng)的移植、平臺的遷移變得十分容易。其他優(yōu)點如下。
簡單易學(xué):Java語言的語法與C語言和C++語言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用Java。另一方面,Java丟棄了C++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強(qiáng)制類型轉(zhuǎn)換。特別地,Java語言不使用指針,并提供了自動的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂,是很容易學(xué)習(xí)的。
面向?qū)ο螅篔ava語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現(xiàn)機(jī)制(關(guān)鍵字為implement)。Java語言全面支持動態(tài)綁定,而C++語言只對虛函數(shù)使用動態(tài)綁定?傊,Java語言是一個純的面向?qū)ο蟪绦蛟O(shè)計語言。
安全性:Java語言不支持指針,只有通過對象的實例才能訪問內(nèi)存,使應(yīng)用更加安全。
可移植性:這種可移植性來源于體系結(jié)構(gòu)中立性,另外,Java還嚴(yán)格規(guī)定了各個基本數(shù)據(jù)類型的長度。Java系統(tǒng)本身也具有很強(qiáng)的可移植性,Java編譯器是用Java實現(xiàn)的,Java的運(yùn)行環(huán)境是用ANSIC實現(xiàn)的。
對對象技術(shù)的全面支持和平臺內(nèi)嵌的API使得Java應(yīng)用具有無比的健壯性和可靠性,這也減少了應(yīng)用系統(tǒng)的維護(hù)費(fèi)用。
【Java語言的內(nèi)部類】相關(guān)文章:
Java的內(nèi)部類與類的加載器04-02
Java語言的優(yōu)點12-05
Java語言的歷史12-03
Java語言的基本特點03-29
Java語言基本概述03-29
Java語言的編程特點03-18
Java語言基本特點11-25
Java語言的學(xué)習(xí)技巧11-27
java語言源碼解析03-30