




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第Java面向?qū)ο笾畠?nèi)部類詳解目錄前言內(nèi)部類概述內(nèi)部類的分類成員內(nèi)部類局部內(nèi)部類
前言
在Java中,允許一個類的定義位于另一個類的內(nèi)部,前者稱為內(nèi)部類,后者稱為外部類。本篇博客將總結(jié)內(nèi)部類的使用。
內(nèi)部類概述
當(dāng)一個事物的內(nèi)部,還有一個部分需要一個完整的結(jié)構(gòu)進(jìn)行描述,而這個內(nèi)部的完整的結(jié)構(gòu)又只為外部事物提供服務(wù),那么整個內(nèi)部的完整結(jié)構(gòu)最好使用內(nèi)部類。
在Java中,允許一個類的定義位于另一個類的內(nèi)部,前者稱為內(nèi)部類,后者稱為外部類。
內(nèi)部類一般用在定義它的類或語句塊之內(nèi),在外部引用它時必須給出完整的名稱。
內(nèi)部類的名字不能與包含它的外部類類名相同;
內(nèi)部類的分類
內(nèi)部類分為:
成員內(nèi)部類(static成員內(nèi)部類和非static成員內(nèi)部類)
局部內(nèi)部類(方法內(nèi),代碼塊內(nèi),構(gòu)造器內(nèi))
成員內(nèi)部類
一方面,作為外部類的成員:
調(diào)用外部類的結(jié)構(gòu)。可以被static修飾(注意里面只能調(diào)用靜態(tài)方法,靜態(tài)屬性)。可以被4種不同的權(quán)限修飾。
另一方面,作為一個類:
類內(nèi)可以定義屬性、方法、構(gòu)造器等。可以被final修飾,表示此類不能被繼承。可以被abstract修飾。
classPeople{
Stringrace;
Stringcountries;
//靜態(tài)成員內(nèi)部類
staticclassMan{
Stringname;
publicMan(){
publicvoiddisplay(){
System.out.println("3090yyds");
//非靜態(tài)成員內(nèi)部類
classWomen{
Stringname;
publicWomen(){
publicvoiddisplay(){
System.out.println("化妝");
如何實(shí)例化成員內(nèi)部類的對象
package內(nèi)部類;
???????publicclassDemo{
publicstaticvoidmain(String[]args){
//創(chuàng)建Man對象(靜態(tài)的成員內(nèi)部類)
People.Manm=newPeople.Man();
m.display();
//創(chuàng)建Women對象(非靜態(tài)的成員內(nèi)部類)
Peoplep=newPeople();
People.Womenw=p.newWomen();
w.display();
}
如何在成員內(nèi)部類成員中區(qū)分調(diào)用外部類的對象
package內(nèi)部類;
publicclassDemo{
publicstaticvoidmain(String[]args){
//創(chuàng)建Women對象(非靜態(tài)的成員內(nèi)部類)
Peoplep=newPeople();
People.Womenw=p.newWomen();
w.display("a");
classPeople{
Stringname="niu";
Stringcountries;
publicvoideat(){
System.out.println("吃飯");
//非靜態(tài)成員內(nèi)部類
classWomen{
Stringname="aniu";
publicWomen(){
publicvoideat(){
System.out.println("吃蔬菜");
publicvoiddisplay(Stringname){
System.out.println("化妝");
System.out.println(name);//方法的形參
System.out.println();//內(nèi)部類的屬性
System.out.println(P);//外部類的屬性
this.eat();//內(nèi)部類的方法
People.this.eat();//外部類的方法
局部內(nèi)部類
局部內(nèi)部類可以在方法內(nèi),代碼塊內(nèi),構(gòu)造器內(nèi)
classAnimal{
//局部內(nèi)部類
//構(gòu)造器內(nèi)
Animal(){
classDog{
//代碼塊內(nèi)
classCat{
//方法內(nèi)
publicvoidmethod(){
classBird{
}
開發(fā)中局部內(nèi)部類的使用
我們在開發(fā)中局部內(nèi)部類使用較多,比如,我們需要一個方法返回實(shí)現(xiàn)了某個接口的類的對象,此時方法內(nèi)自然就需要一個內(nèi)部類實(shí)現(xiàn)接口!
例:
//返回一個實(shí)現(xiàn)了Comparable接口的類的對象
publicComparablegetComparable(){
//創(chuàng)建一個實(shí)現(xiàn)了Comparable接口的類---局部內(nèi)部類
classMyComparableimplementsComparable{
@Override
publicintcompareTo(Objecto){
return0;
returnnewMyComparable();//非匿名內(nèi)部類的匿名對象
或者是這樣
//返回一個實(shí)現(xiàn)了Comparable接口的類的對象
publicComparablege
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 決策性學(xué)習(xí)的衛(wèi)生資格考試試題及答案
- 中國呼吸道感染門診治療課件
- 醫(yī)學(xué)信息檢索方法與技術(shù)應(yīng)用
- 護(hù)理考試復(fù)習(xí)策略分享試題及答案
- 行政法學(xué)中的實(shí)務(wù)案例分析與試題及答案
- 2025年中國文化概論考試復(fù)習(xí)資料與試題及答案
- 高級審計師考試真題回顧試題及答案
- 網(wǎng)紅奶茶店加盟店拓展與區(qū)域市場擴(kuò)張合同
- 文旅景區(qū)資源整合與開發(fā)投資合伙協(xié)議
- 國際學(xué)校幼兒園入學(xué)協(xié)議及教育服務(wù)
- 中國腦卒中康復(fù)治療指南課件
- 隧道工程維護(hù)與修復(fù)技術(shù)
- 智慧社區(qū)平臺運(yùn)營方案
- 不良資產(chǎn)項(xiàng)目律師法律盡調(diào)報告(模板)
- 高中化學(xué)優(yōu)質(zhì)課說課 海水資源的開發(fā)利用
- 全鋼子午線輪胎一次法成型機(jī)課件
- 產(chǎn)品借用申請表
- 有限空間作業(yè)大比武實(shí)操比賽評分細(xì)則
- 人教部編版六年級下冊語文【選擇題】專項(xiàng)復(fù)習(xí)訓(xùn)練真題100題(附答案解析)
- 巖土工程勘察報告
- 中藥養(yǎng)護(hù)記錄表
評論
0/150
提交評論