内部类

内部类

内部类的分类

成员内部类:在外部类的成员位置定义类

局部内部类:在局部位置(外部类的成员方法)定义的一个类

访问内部类的成员方式

外部类名.内部类 对象名 = 外部类对象().内部类对象();

成员内部类他的一些修饰符

private :能够保证内部类的数据安全性

static:静态的成员内部类 被static修饰的成员内部类:它里面的成员方法(可以静态、非静态)只能访问

外部类中的静态成员(必须使用static修饰)

访问静态成员内部类的成员方法方式

外部类.内部类 对象名 = new外部类类名.内部类名();

局部内部类: 在局部位置定义的类

特点:1、可以直接访问外部类的成员,包括私有。

2、在外部类的成员方法中,可以通过创建局部类对象来访问局部内部类的成员

注:在jdk7以前(包括),局部内部类访问局部变量,,局部变量必须加入final,否则报错1

jdk7以后,局部变量会自动加上final,开发者不需要定义fianl,为什么要加final

原因:局部变量的生命周期,随着方法调用而存在,随着方法调用完毕而消失,而当前这个局部变量被局部内部类在进行访问(局部内部类对象进行访问),在堆内存中对象不会被立即回收,他还在继续使用这个变量,需要将它定义为常量(常驻内存)以便局部内部类对象对该局部变量访问。

匿名内部类

它是内部类一种简化方式

格式 new 类名/接口名(){

方法重写;

};

匿名内部类的好处:

省去繁杂的代码,不需要定义类里面的子类或者是接口的子实现类,写法比较简单

匿名内部类的本质是:继承该类或者是实现了接口的子类对象。

1、在内部类中 不存在继承关系

2、就近原则:在成员内部类中,如果外部类的成员变量和内部类变量名称一样,先在局部位置找,如果有么就是用

3、在内部类中,可以通过外部类名。this(外部类名限定.this)访问外部类里面的成员变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值