Java--内部类

本文的部分知识点源于张老师的《Java就业培训教程》。


内部类是可以访问和引用它的外部类的所有变量和方法,反过来就不成立了。内部类的成员只有在内部类的范围内是可知的,并不能被外部类使用,和外部类不同的是内部类可以声明为private和protected;

1.为什么要定义内部类?什么情况下需要将一个类定义成内部类?

内部类使得程序代码更为紧凑,程序更具模块化。

当一个类中的程序代码要用到另外一个类的实例对象,而在另一个类的程序代码中又要访问第一个类中的成员,这样将另外一个类做成第一个类的内部类,程序代码就容易多了。

2.内部类如何被外部类引用?

内部类可以通过创建对象从外部类之外被调用,只要将内部类声明为public即可;

如Ourter外部类,Inner内部类其中含有方法doStuff(),通过:

Outer outer = new Outer();

Outter.Inner inner = outer.new Inner();

inner.doStuff();

3.内部类还可以定义在方法中,甚至是for循环体内部;


4.匿名内部类:

内部类可以声明为抽象类或者接口,它可以被另外一个内部类来继承或者实现。内部类可以继承外部类亦可以用final关键字修饰。

eg:需要产生一个类A的匿名子类的实例对象,并传递给callInner方法。写完效果如下:

new Outer().callInner(new A(){

})
在那对大括号中间,增加匿名子类的所有实现代码;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值