22.内部类和匿名内部类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了22.内部类和匿名内部类相关的知识,希望对你有一定的参考价值。
- 什么是内部类
- 一个类定义在另一个类的内部
- 内部类的使用方法
- 内部类是可以随意使用外部类当中所定义的成员变量和成员函数
- 生成内部类对象方法:new 外部类对象 . new 内部类对象
class A{
int i;
class B{
int j;
int funB(){
int result = A.this.i +this.j;
return result;
}
}
}
classTest{
publicstaticvoid main(String args []){
A a =new A();
A.B b = a.new B();
a.i =2;
b.j =3;
int result = b.funB();
System.out.println(result);
}
}
结果:
D:\work\src>javac *.java
D:\work\src>java Test
5
- 匿名内部类的使用方法
- 生成匿名内部类方法:new 一个接口后面紧跟一个类来实现这个接口,只不过这个类是没有名字的
interface A{
publicvoid doSomething();
}
class B{
publicvoid fun(A a){
System.out.println("B类的fun函数");
a.doSomething();
}
}
classAImpl implements A{
publicvoid doSomething(){
System.out.println("doSomething");
}
}
classTest{
publicstaticvoid main(String args []){
//AImpl al = new AImpl();
//A a = al;
B b =new B();
b.fun(new A(){
//和一个完整实现类的区别在于没有名字
//生成了new A()的对象
publicvoid doSomething(){
System.out.println("匿名内部类");
}
});
}
}
结果:
D:\work\src>javac *.java
D:\work\src>java Test
B类的fun函数
匿名内部类
以上是关于22.内部类和匿名内部类的主要内容,如果未能解决你的问题,请参考以下文章