java--接口和内部类

接口和内部类并没有什么必然的联系,它们的共同点,都是java比较有用的高级点的技能

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
接口技术
A 接口特性
1 接口不是类,不能使用new来进行实例化
2 可以定义接口变量 ,这个变量必须引用,实现了这个接口的类对象
3 可以使用instanceof来检查,某个对象是否实现了某个特定的接口,否则不能赋值接
口变量
4 接口也可以像类的继承机制一样,进行扩展。
也是使用 extends关键字
5 接口里不能包含实例变量、静态方法。因为接口不嫩实例化啊,所以哪来的实例变
量。
6 接口可以包含常量。 所以,有可能有些接口没有定义方法,只是定义了一些常量。
7 接口中的方法,都自动设置为 public
接口中的域,都自动设置成public static final
8 一个类智能集成一个超类,但是可以实现多个接口
9 一个重要的接口:Cloneable接口,一个类如果实现了Cloneable接口,那么Object类中的clone方法,就可以创建类对象的拷贝。(未完,待续,理解的不深)

10 接口和回调函数:(未完,待续,理解的不深)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
内部类机制
内部类的用途
内部类的种类和特性
~~~~~~~~~~~~~~~~~~~~~~~~~~~
内部类的用途
1 普通的内部类,就是直接在某个类的内部进行定义的。
然后,这个内部类的对象的方法,可以访问创建它的外围类的所有域,包括private域

内部类和外围类之间的联系
1 内部类如果没有构造函数,那么系统自动为它添加了个无参构造函数,并且把外围类的对象作为构造函数的参数。
2 常见内部类使用方式,就是在外围类某个方法中,new一个内部类的对象,以此来建立关系。这样,系统把外部类悄悄的通过内部类的构造函数,传给了内部类的对象,所以内部类对象才可以调用外部类的任何域

2 局部内部类
就是把类的定义放在了 外围类的某个函数中,如外围类start()方法中,这样对外部世界就可以完全地隐藏起来了。 除了start方法,其他方法都不知道这个类的存在
使用场景:当这个内部类的名字只是在start方法中,new一次,创建了一个该类型对象。

优点:
一、对外部世界就可以完全地隐藏起来了
二、它不仅可以访问外部类,还可以*访问局部方法中的局部变量(包括形参)*前提是:这些局部变量被声明为final。原理:在局部类内建立了 局部变量的一份拷贝,所以即使局部变量被释放了。。。(不太懂,胡言乱语,继续加深理解)

3 匿名类
局部内部类的使用再深入一步,假设只创建这个类的一个对象,那么就不必命名了。

4 静态内部类
如果,内部类和外围类的对象不会扯上关系,不需要内部类引用外围类对象。那么就把这个内部类声明为static的。
使用场景:如,防止类名冲突的话,

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
内部类种类:
普通内部类,局部内部类,匿名类,静态内部类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值