首页 > 代码库 > 22.内部类和匿名内部类
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函数
匿名内部类
来自为知笔记(Wiz)
22.内部类和匿名内部类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。