java中什么叫内部类,java的内部类和外部类
普通内部类
常见的内班有两个要点需要掌握。
保存父类引用的变量和方法,因此它们可以访问父类的任何访问权限。
如何在父类之外创建内部类
公共类Main{
公共静态void main(String args[]){
Outer Outer=new Outer();
//在外部类之外创建一个内部类
外部。Inner Inner=outer . new Inner();
inner . method();
}
}
外部类{
私有字符串值= OuterValue
内部类{
公共void方法(){
//持有父类引用,可以访问父类私有变量值
System.out.println(值);
}
//与。这个关键字,可以返回父类对象引用。
公共外部外部对象(){
返回Outer.this
}
}
}(推荐教程:java入门)
方法内部类
直接在方法中定义的内部类。
方法具有访问其他方法和外部类成员变量的同等权利。
您可以访问此方法的参数。在1.8之后,参数不需要设置为最终。
享有相同方法的局部变量的权限,并且可以访问在它前面定义的局部变量。
您只能在方法的范围内访问方法的内部类。
公共类Main{
公共静态void main(String args[]){
Outer Outer=new Outer();
outer . outer method(“param”);
}
}
外部类{
公共void outerMethod(字符串值){
内部类{
public void innerMethod(){
//您可以访问方法参数
//1.8以后,内部类访问的方法参数不必设置为final。
System.out.println(值);
}
}
新的内部()。inner method();
}
}匿名内部类
匿名类其实是一个重点,也是我们经常用到的一个知识点。
例如创建新线程。
公共类Main{
公共静态void main(String args[]){
线程a=新线程(新Runnable(){
@覆盖
公共无效运行(){
System.out.println(线程a正在运行;);
}
});
a . start();
}
}上面的代码意思是创建一个实现Runnable接口的匿名类对象,相当于下面的代码。因为好写,所以我们经常用第二种。
公共类Main{
公共静态void main(String args[]){
线程a=新线程(new runnable imp());
a . start();
}
静态类RunnableImp实现Runnable{
@覆盖
公共无效运行(){
System.out.println(线程a正在运行;);
}
}
}静态内部类
记住以下两点
要创建静态内部类对象,不需要外部类的对象(普通内部类需要)。
不能从静态内部类访问非静态外部类方法或成员变量。
公共类Main{
外部。内内=新外。inner();
}
外部类{
私有字符串ordValue
私有静态字符串staValue
静态类内部{
{
system . out . println(staValue);
//这句话编不出来。
//system . out . println(ordValue);
}
}
}相关视频教程推荐:java视频以上是对Java内部类细节的详细讲解。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。