黑馬程式設計師 Java基礎 內部類總結

2021-07-03 15:09:21 字數 1727 閱讀 5426

這裡東西還是很多的,很雜

我曾經有過問題的地方總結的4.2  為什麼方法內的變數都要用final  後來明白了  

方法內部類物件只能訪問該內部類所在方法的final修飾的區域性變數 

1.內部類可以直接訪問外部類中的成員,包括私有

原因:因為在內部類中持有乙個外部類的應用,格式:外部類.this

class outer } }

2.外部類要訪問內部類,必須建立內部類物件

a.從外部類的非靜態方法中訪問內部類

class outer

class inner }}

b、從外部類的靜態方法中訪問內部類

class outer

}public static voidseeinner()

}c、在外部其它類中訪問內部類

class outer }}

public class touter

}對比:在外部類的非靜態方法中訪問內部類:inner in = new inner();

在外部類的靜態方法中訪問內部類:outer.innerin = new outer().new inner();

在外部其他類中訪問內部類:outer.inner in = new outer().new inner();

3.當內部類在成員位置上,就可以被成員修飾符修飾

3.1當內部類被static修飾後,就只能訪問外部類中的static成員,出現訪問侷限

class outer }} 

3.2在外部其他類中,如何訪問static內部類的非靜態成員呢?

newouter.inner().seeouter();

理由:因為外部內一旦被載入,靜態內部類也被載入了,所以直接建立內部類物件呼叫方法即可

class outer }}

public class test 

}3.3在外部其他類中,如何訪問static內部類的靜態成員呢?

outer.inner.seeouter();

class outer }}

public class test 

}3.4.當內部類中定義了靜態成員,該內部類必須是靜態的

class outer }} 

3.5.當內部類中的靜態方法訪問內部類時,內部類也必須是靜態的(參考上面2中b位置1處)

4.方法內部類(區域性內部類)

把類放在方法內

class outer } }

}4.1、方法內部類只能在定義該內部類的方法內例項化,不可以在此方法外對其實例化

4.2、方法內部類物件不能訪問該內部類所在方法的非final區域性變數 

class outer

} inner in = new inner();

in.seeouter(); 

//只能在方法內部訪問內部類

}public static void main(string args)

}4.3、方法內部類的修飾符

與成員內部類不同,方法內部類更像乙個區域性變數

可以用於修飾方法內部類的只有final和abstract

4.4、靜態方法內的方法內部類

靜態方法是沒有this引用的,因此在靜態方法內的內部類遭受同樣的待遇,即:只能訪問外部類的靜態成員

5.匿名內部類

匿名內部類就是內部類的簡寫格式

定義匿名內部類的前提:內部類必須繼承乙個類或實現介面

匿名內部類就是乙個匿名子類物件

格式:new 父類或者介面()

黑馬程式設計師 內部類

windows phone 7手機開發 net培訓 期待與您交流!什麼是內部類呢?將乙個類定義在另乙個類的裡面,對裡面那個類就稱為內部類 內建類 巢狀類 內部類的訪問特點有哪些呢?內部類可以直接訪問外部類中的成員,包括私有成員 而外部類要訪問內部類中的成員必須要建立內部類的物件。內部類有什麼作用呢?...

黑馬程式設計師 內部類

asp.net android io開發s net培訓 期待與您交流!內部類即在乙個外部類的內部再定義乙個類。內部類作為外部類的乙個成員,且依附於外部類而存在。內部類的訪問規則 1 內部類可以直接訪問外部類中的成員,包括私有。2 外部類需要訪問內部類時,必須建立內部類物件。訪問格式 外部類名.內部類...

黑馬程式設計師 內部類

asp.net android ios rel noopener noreferrer target blank asp.net android ios開發 net rel noopener noreferrer target blank net培訓 期待與您交流!內部類 將乙個類定義在另乙個類的裡...