JAVASE 面向对象 多态 单类设计模式 内部类 匿名内部类

来源:互联网 发布:java字符串转日期代码 编辑:程序博客网 时间:2024/06/06 01:57
多态时,成员的特点:
1,成员变量。
编译时:参考引用型变量所属的类中的是否有调用的成员变量,有,编译通过,没有,编译失败. 
运行时:参考引用型变量所属的类中的是否有调用的成员变量,并运行该所属类中的成员变量。 
简单说:编译和运行都参考等号的左边。哦了。 
作为了解。
 
2,成员函数(非静态)。 
编译时:参考引用型变量所属的类中的是否有调用的函数。有,编译通过,没有,编译失败。 
运行时:参考的是对象所属的类中是否有调用的函数。 
简单说:编译看左边,运行看右边。 

因为成员函数存在覆盖特性。


3,静态函数。  
编译时:参考引用型变量所属的类中的是否有调用的静态方法。  
运行时:参考引用型变量所属的类中的是否有调用的静态方法。 
简单说,编译和运行都看左边。 

其实对于静态方法,是不需要对象的。直接用类名调用即可。


单类设计模式:

解决的问题:就是可以保证一个类在内存中的对象唯一性。
 必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。 


 如何保证对象唯一性呢?
1,不允许其他程序用new创建该类对象。
2,在该类创建一个本类实例。
3,对外提供一个方法让其他程序可以获取该对象。
 
步骤:
1,私有化该类构造函数。
2,通过new在本类中创建一个本类对象。

3,定义一个公有的方法,将创建的对象返回。


内部类访问特点:
1,内部类可以直接访问外部类中的成员。
2,外部类要访问内部类,必须建立内部类的对象。
一般用于类的设计。
分析事物时,发现该事物描述中还有事物,而且这个事物还在访问被描述事物的内容。
这时就是还有的事物定义成内部类来描述。
内部类能直接访问外部类中成员,是因为内部类持有了外部类的引用,即外部类名.this。
内部类也可以存放在局部位置上,但是内部类在局部位置上只能访问局部中被final修饰的局部变量


匿名内部类:

匿名内部类,就是内部类的简写格式。 
必须有前提:
内部类必须继承或者实现一个外部类或者接口。
匿名内部类:其实就是一个匿名子类对象。  
格式:new 父类or接口(){子类内容}


0 0
原创粉丝点击