java内部类的定义原则
/*
內部類的訪問規則:
1,內部類可以直接訪問外部類中的成員,包括私有。
?? ?之所以可以直接訪問外部類中的成員,是因為內部類中持有了一個外部類的引用,格式 外部類名.this
2,外部類要訪問內部類,必須建立內部類對象。
訪問格式:
1,當內部類定義在外部類的成員位置上,而且非私有,可以在外部其他類中。
可以直接建立內部類對象。
格式
?? ?外部類名.內部類名? 變量名 = 外部類對象.內部類對象;
?? ?Outer.Inner in = new Outer().new Inner();
2,當內部類在成員位置上,就可以被成員修飾符所修飾。
?? ?比如,private:將內部類在外部類中進行封裝。
?? ??? ?static:內部類就具備static的特性。
?? ??? ?當內部類被static修飾后,只能直接訪問外部類中的static成員。出現了訪問局限。
?? ??? ?在外部其他類中,如何直接訪問static內部類的非靜態成員呢?
?? ??? ?new Outer.Inner().function();
?? ??? ?在外部其他類中,如何直接訪問static內部類的靜態成員呢?
?? ??? ?uter.Inner.function();
?? ?注意:當內部類中定義了靜態成員,該內部類必須是static的。
?? ??? ?? 當外部類中的靜態方法訪問內部類時,內部類也必須是static的。
?? ?
當描述事物時,事物的內部還有事物,該事物用內部類來描述。
因為內部事務在使用外部事物的內容。
class Body
{
?? ?private class XinZang
?? ?{
?? ?}
?? ?public void show()
?? ?{
?? ??? ?new XinZang().
?? ?}
?? ?
}
*/
class Outer
{
?? ?private static? int x = 3;
?? ?
?? ?static class Inner//靜態內部類
?? ?{
?? ??? ?static void function()
?? ??? ?{
?? ??? ??? ?System.out.println("innner :"+x);
?? ??? ?}
?? ?}
?? ?static class Inner2
?? ?{
?? ??? ?void show()
?? ??? ?{
?? ??? ??? ?System.out.println("inner2 show");
?? ??? ?}
?? ?}
?? ?public static void method()
?? ?{
?? ??? ?//Inner.function();
?? ??? ?new Inner2().show();
?? ?}
}
class? InnerClassDemo2
{
?? ?public static void main(String[] args)
?? ?{
?? ??? ?Outer.method();
?? ??? ?//Outer.Inner.function();
?? ??? ?//new Outer.Inner().function();
?? ??? ?//直接訪問內部類中的成員。
//?? ??? ?Outer.Inner in = new Outer().new Inner();
//?? ??? ?in.function();
?? ?}
}
轉載于:https://www.cnblogs.com/liangqiyuan/p/5690148.html
總結
以上是生活随笔為你收集整理的java内部类的定义原则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Java 安全]加密算法
- 下一篇: 冒泡排序--通过冒泡算法让数组中最大的值