电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

淺析Java內(nèi)部類——成員內(nèi)部類

瀏覽:5日期:2022-08-26 13:55:17

內(nèi)部類是什么,簡(jiǎn)單來(lái)說(shuō),就是定義在類內(nèi)部的類(一本正經(jīng)的說(shuō)著廢話)。

一個(gè)正經(jīng)的內(nèi)部類是長(zhǎng)這樣的:

public class Outer { class Inner{ }}

這是為了演示而寫(xiě)的類,沒(méi)有什么luan用,可以看到Inner類置于Outer類的內(nèi)部。

那為什么要大費(fèi)周章的在類內(nèi)部定義一個(gè)類呢?不能在類外部定義類嗎??jī)?nèi)部類跟外部類有什么關(guān)系?

確實(shí),很多時(shí)候,在外部單獨(dú)定義一個(gè)類確實(shí)更加方便,也更加通用,但內(nèi)部類的存在自然有其存在的道理,內(nèi)部類作為寄生在外部類的類,可以自由訪問(wèn)內(nèi)部類的所有的屬性和方法,有沒(méi)有聯(lián)想其我們之前說(shuō)的繼承,子類可以繼承父類的屬性和方法,但是內(nèi)部類有著更高的訪問(wèn)權(quán)限,不僅是public屬性,protected屬性,就連private屬性也可以輕松訪問(wèn),這樣就不會(huì)讓修飾符限制你的想象了(手動(dòng)滑稽)。

內(nèi)部類也分很多種:成員內(nèi)部類、靜態(tài)內(nèi)部類、局部?jī)?nèi)部類、匿名內(nèi)部類。今天先來(lái)說(shuō)說(shuō)第一種:成員內(nèi)部類。

成員內(nèi)部類是最簡(jiǎn)單粗暴的內(nèi)部類,上面那個(gè)栗子中的Inner類就是成員內(nèi)部類,相比普通的類,成員內(nèi)部類是不能有static修飾的成員或者方法的,因?yàn)槌蓡T內(nèi)部類是寄生在外部類中的,所以必須先有外部類實(shí)例才能有成員內(nèi)部類。在外部創(chuàng)建內(nèi)部類對(duì)象時(shí),姿勢(shì)也不太一樣,看起來(lái)像是這個(gè)樣子的:

public class Test { public static void main(String[] args) { Outer.Inner inner = new Outer().new Inner(); }}

在內(nèi)部類中可以訪問(wèn)外部類的方法和屬性,外部類也可以訪問(wèn)內(nèi)部類的方法和屬性,舉個(gè)栗子:

public class Outer { private int num; private Inner inner; Outer(){ num = 1; inner = new Inner(); } public void print(){ System.out.println('Outer.print()'); System.out.println(inner.num); System.out.println(num); } class Inner{ private int num; Inner(){ num = 2; } public void print(){ System.out.println('Inner.print()'); System.out.println(this.num); System.out.println(Outer.this.num); } }}

public class Test { public static void main(String[] args) { Outer outer = new Outer(); Outer.Inner inner = outer.new Inner(); outer.print(); inner.print(); }}

輸出如下:

Outer.print()31Inner.print()31

外部類訪問(wèn)內(nèi)部類的姿勢(shì)是先生成內(nèi)部類實(shí)例,然后就能訪問(wèn)所有方法和屬性,內(nèi)部類訪問(wèn)外部類方法和屬性則直接使用Outer.屬性/方法名 即可。

在這個(gè)栗子中,我們可以看到內(nèi)部了Inner可以對(duì)外圍類Outer的屬性進(jìn)行無(wú)限制的訪問(wèn),盡管它是private修飾的。因?yàn)楫?dāng)我們?cè)趧?chuàng)建某個(gè)外圍類的內(nèi)部類對(duì)象時(shí),會(huì)往內(nèi)部類傳入一個(gè)外部類的引用,只要我們?cè)谠L問(wèn)外部類的成員時(shí),就會(huì)用這個(gè)引用來(lái)選擇外圍類的成員。引用內(nèi)部類的時(shí)候,需要使用Outer.Inner這樣的形式來(lái)聲明,而不能直接使用Inner來(lái)聲明(除了在Outer類中),當(dāng)需要使用到內(nèi)部類的時(shí)候,還是推薦使用getInnerInstance的方式來(lái)獲取,特別是當(dāng)內(nèi)部類只有無(wú)參構(gòu)造器的時(shí)候:

public class Outer { private int num; private Inner inner; Outer(){ num = 1; inner = new Inner(); } public Inner getInnerInstance() { return new Inner(); } public void print(){ System.out.println('Outer.print()'); System.out.println(inner.num); System.out.println(num); } public class Inner{ private int num; Inner(){ num = 2; } public void print(){ System.out.println('Inner.print()'); System.out.println(this.num); System.out.println(Outer.this.num); } }}

public class Test { public static void main(String[] args) { Outer outer = new Outer(); Outer.Inner inner = outer.getInnerInstance(); outer.print(); inner.print(); }}

這樣的話,就能更好的封裝了。

當(dāng)然,內(nèi)部類跟外部類還有一個(gè)很重要區(qū)別:內(nèi)部類可以用private修飾,而外部類是不能使用private修飾的。如果內(nèi)部類僅僅在類內(nèi)部使用時(shí),使用private修飾后,就可以更好的隱藏內(nèi)部信息。

至此,內(nèi)部類的第一部分講解完畢,歡迎大家繼續(xù)關(guān)注。

以上就是淺析Java內(nèi)部類——成員內(nèi)部類的詳細(xì)內(nèi)容,更多關(guān)于Java 成員內(nèi)部類的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 基业箱_环网柜_配电柜厂家_开关柜厂家_开关断路器-东莞基业电气设备有限公司 | 牛奶检测仪-乳成分分析仪-北京海谊 | 气弹簧定制-气动杆-可控气弹簧-不锈钢阻尼器-工业气弹簧-可调节气弹簧厂家-常州巨腾气弹簧供应商 | 智能垃圾箱|垃圾房|垃圾分类亭|垃圾分类箱专业生产厂家定做-宿迁市传宇环保设备有限公司 | 不锈钢钢格栅板_热浸锌钢格板_镀锌钢格栅板_钢格栅盖板-格美瑞 | 番茄畅听邀请码怎么输入 - Dianw8.com | 聚天冬氨酸,亚氨基二琥珀酸四钠,PASP,IDS - 远联化工 | 科研ELISA试剂盒,酶联免疫检测试剂盒,昆虫_植物ELISA酶免试剂盒-上海仁捷生物科技有限公司 | 小威小说网 - 新小威小说网 - 小威小说网小说搜索引擎 | 镀锌方管,无缝方管,伸缩套管,方矩管_山东重鑫致胜金属制品有限公司 | 新型锤式破碎机_新型圆锥式_新型颚式破碎机_反击式打沙机_锤式制砂机_青州建源机械 | 护栏打桩机-打桩机厂家-恒新重工| 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂 | 智能案卷柜_卷宗柜_钥匙柜_文件流转柜_装备柜_浙江福源智能科技有限公司 | 镀锌角钢_槽钢_扁钢_圆钢_方矩管厂家_镀锌花纹板-海邦钢铁(天津)有限公司 | Brotu | 关注AI,Web3.0,VR/AR,GPT,元宇宙区块链数字产业 | 微波消解仪器_智能微波消解仪报价_高压微波消解仪厂家_那艾 | 多功能干燥机,过滤洗涤干燥三合一设备-无锡市张华医药设备有限公司 | 高清视频编码器,4K音视频编解码器,直播编码器,流媒体服务器,深圳海威视讯技术有限公司 | 智能型高压核相仪-自动开口闪点测试仪-QJ41A电雷管测试仪|上海妙定 | 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | 机床主轴维修|刀塔维修|C轴维修-常州翔高精密机械有限公司 | 仿清水混凝土_清水混凝土装修_施工_修饰_保护剂_修补_清水混凝土修复-德州忠岭建筑装饰工程 | 施工围挡-施工PVC围挡-工程围挡-深圳市旭东钢构技术开发有限公司 | 创富网-B2B网站|供求信息网|b2b平台|专业电子商务网站 | 车充外壳,车载充电器外壳,车载点烟器外壳,点烟器连接头,旅行充充电器外壳,手机充电器外壳,深圳市华科达塑胶五金有限公司 | 杭州荣奥家具有限公司-浙江办公家具,杭州办公家具厂 | 微型气泵-真空-蠕动-水泵-厂家-深圳市品亚科技有限公司 | 医养体检包_公卫随访箱_慢病随访包_家签随访包_随访一体机-济南易享医疗科技有限公司 | 干洗加盟网-洗衣店品牌排行-干洗设备价格-干洗连锁加盟指南 | 粉丝机械,粉丝烘干机,粉丝生产线-招远市远东粉丝机械有限公司 | 新车测评网_网罗汽车评测资讯_汽车评测门户报道 | 电线电缆厂家|沈阳电缆厂|电线厂|沈阳英联塑力线缆有限公司 | 瓶盖扭矩测试仪-瓶盖扭力仪-全自动扭矩仪-济南三泉中石单品站 | 济南货架定做_仓储货架生产厂_重型货架厂_仓库货架批发_济南启力仓储设备有限公司 | 合肥废气治理设备_安徽除尘设备_工业废气处理设备厂家-盈凯环保 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 动物麻醉机-数显脑立体定位仪-北京易则佳科技有限公司 | 济南律师,济南法律咨询,山东法律顾问-山东沃德律师事务所 | 春腾云财 - 为企业提供专业财税咨询、代理记账服务 | 真空泵维修保养,普发,阿尔卡特,荏原,卡西亚玛,莱宝,爱德华干式螺杆真空泵维修-东莞比其尔真空机电设备有限公司 | 杭州双螺杆挤出机-百科|