您的位置:首页 > 编程语言 > Java开发

java--接口和内部类

2016-04-28 20:41 309 查看
接口和内部类并没有什么必然的联系,它们的共同点,都是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的。

使用场景:如,防止类名冲突的话,

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

内部类种类:

普通内部类,局部内部类,匿名类,静态内部类
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java