一、內部類的訪問規則:
1.內部類可以直接訪問外部類中的成員,包括私有
之所以可以直接訪問外部類中的成員,是因為內部類中持有了乙個外部類的引用————格式: 外部類名.this
2.外部類要訪問內部類,必須建立內部類物件
訪問格式:
1.當內部類定義在外部類的成員位置上,而且非私有,可以在外部其他類中,可以直接建立內部類物件。
格式外部類明.內部類名. 變數名=外部類物件.內部類物件;
例如例中的:outer.inner in=new outer().new inner();
2.當內部類定義在成員位置上,就可以被成員修飾符所修飾。
比如,private :將內部類在外部類中進行封裝。
static : 內部類就具備了靜態的特性
二、**
一、概述class outer
} void method() }
class innerclassdemo
}
當內部類被static修飾後,只能直接訪問外部類中的static成員,即,出現了訪問侷限
問題1:那麼在外部其他類中,如何直接訪問static內部類中的非靜態成員呢?
new outer.inner1().function();
問題2.那麼在外部其他類中,那麼如何直接訪問static內部類中的靜態成員呢?
outer.inner1.function();
注意:1.當內部類中定義了靜態成員,該內部類必須是static的。
2.當外部類中的靜態方法訪問內部類時,內部類也必須是static的。
二、**
一、概述class outer
static void function1()
}}class innerclassdemo
}
當描述事物時,事物的內部還有事物,這事物由內部類來藐視。
因為:內部事物在使用外部事物的內容。
例子:人——心臟等器官,心臟就可以定義為「人」這個類的內部類。
二、**
一、概述class body
}
內部類定義在區域性時
1.不可以被成員修飾符修飾。
2.可以直接訪問外部類中的成員,因為還持有外部類中的引用。
但是不可以訪問他所在的區域性中的變數,只能訪問被final所修飾的區域性變數。
二、**
class outer
}new inner().function(); }}
class innerclassdemo3
}
一、概述
匿名內部類:
1.匿名內部類其實就是乙個內部類的簡寫格式。
2。定義匿名內部類的前提
內部類必須是整合乙個類或者實現介面
3.匿名內部類的格式:
new 父類或者介面()
4.匿名內部類,就是乙個匿名子類物件。
5.匿名內部類中定義的方法最好不要超過3個,因為方法過多會降低程式閱讀性。
二、**
①練習一
②練習二abstract class absdemo
class outer
} public void function()
/*②*/
public void function1()
};new absdemo()
}.show();
a.show();
因為是多型,所以不可以呼叫子類特有方法。 }}
class innerclassdemo4
}
③練習三inte***ce inter
class test
}; }}
class innerclassdemo5
}
class innerclassdemo6
}.method(); }
}
java基礎 內部類
一 內部類 將乙個類定義在另乙個類的裡面,對裡面那個類就稱為內部類 內建類,巢狀類 非static內部類可以直接訪問外部類中的成員,包括私有成員。原因 因為內部類中持有了乙個外部類的引用,引用的格式為 外部類名.this 非靜態內部類不能定義static成員 1 內部類定義在外部類的成員位置上 方法...
java基礎 內部類
內部類 一 內部類的訪問規則 1,內部類可以直接訪問外部類中的成員,包括私有。之所以可以直接訪問外部類中的成員,是因為內部類中持有了乙個外部類的引用,格式 外部類名.this 2,外部類要訪問內部類,必須建立內部類物件。例子 class outer static class inner2 publi...
java基礎 內部類
內部類具有 隱藏的功能 從外部類的非靜態方法之外的任何位置建立某個內部類的物件,必須outclassname.innerclassname.this 生成對外圍物件的引用,外部類的名字緊跟.thispublic outer get new 用於建立內部類物件,當生成內部類物件時,必須有外部類的例項使...