抽象类
继承层越高,类就更通用并且更抽象,有些层中的祖先类非常通用,更适于作为其他类的框架,而不适于作为具体类,来使用其特定实例。
比如,假设电子消息系统包括电子邮件,传真和语音邮件,它必须能处理文本消息,传真消息和语音消息。 按照oop原则,该程序应由文本消息类(textMessage),语音消息类(voiceMessage)和传真消息类(faxMessage)。而信箱需要存储和混合这些消息,因此还应由总体把握的消息类Message.
为什么进行如此高层的抽象呢?答案是,这会使类设计更清晰。
在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样。并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类往往用来表征我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。
比如:如果我们进行一个图形编辑软件的开发,就会发现问题领域存在着圆、三角形这样一些具体概念,它们是不同的,但是它们又都属于形状这样一个概念,形状这个概念在问题领域是不存在的,它就是一个抽象概念。正是因为抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能够实例化的。
object类:
object类是所有类的根类。在不明确给出超类的情况下,java会自动把object作为要定义类的超类。
可以使用类型为object的变量指向任意类型的对象。
Object obj=new Employee("huyag",10000);
当然,Object类型的变量只能用作各种值得通用持有者,要对他们进行任何专门的操作,都需要知道他们的原始类型并进行类型转换。
Employee e=(Employee)obj;
object的常用方法:
boolean equals(),String toString(),Class getClass(),Object clone()
1.比较对象是否相等,如果两个对象指向同一内存区域,则返回真,否则返回false
2. 返回表示当前对象值的字符串。
3.返回类定义的类对象。该对象含有关于当前对象的信息。
4.创建对象的副本,java为新实例分配内存,并且将当前类所占内存中的内容拷贝到新实例的内存中
对象包装类:
有时需要将基本类型,如int转换成对象。所有的基本类型都有相应的类。例如整数类Integer与基本类型int相对应。这些类型常称为对象包装类。包装类有明显的名字:整数类(Integer),长整形类(Long),浮点类型(Float),双精度类(Double),字符类(Character)和布尔类(Boolean).前四个类都是由共同的父类数字类Number派生而来的。
包装类是最终类
继承层越高,类就更通用并且更抽象,有些层中的祖先类非常通用,更适于作为其他类的框架,而不适于作为具体类,来使用其特定实例。
比如,假设电子消息系统包括电子邮件,传真和语音邮件,它必须能处理文本消息,传真消息和语音消息。 按照oop原则,该程序应由文本消息类(textMessage),语音消息类(voiceMessage)和传真消息类(faxMessage)。而信箱需要存储和混合这些消息,因此还应由总体把握的消息类Message.
为什么进行如此高层的抽象呢?答案是,这会使类设计更清晰。
在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样。并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类往往用来表征我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。
比如:如果我们进行一个图形编辑软件的开发,就会发现问题领域存在着圆、三角形这样一些具体概念,它们是不同的,但是它们又都属于形状这样一个概念,形状这个概念在问题领域是不存在的,它就是一个抽象概念。正是因为抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能够实例化的。
object类:
object类是所有类的根类。在不明确给出超类的情况下,java会自动把object作为要定义类的超类。
可以使用类型为object的变量指向任意类型的对象。
Object obj=new Employee("huyag",10000);
当然,Object类型的变量只能用作各种值得通用持有者,要对他们进行任何专门的操作,都需要知道他们的原始类型并进行类型转换。
Employee e=(Employee)obj;
object的常用方法:
boolean equals(),String toString(),Class getClass(),Object clone()
1.比较对象是否相等,如果两个对象指向同一内存区域,则返回真,否则返回false
2. 返回表示当前对象值的字符串。
3.返回类定义的类对象。该对象含有关于当前对象的信息。
4.创建对象的副本,java为新实例分配内存,并且将当前类所占内存中的内容拷贝到新实例的内存中
对象包装类:
有时需要将基本类型,如int转换成对象。所有的基本类型都有相应的类。例如整数类Integer与基本类型int相对应。这些类型常称为对象包装类。包装类有明显的名字:整数类(Integer),长整形类(Long),浮点类型(Float),双精度类(Double),字符类(Character)和布尔类(Boolean).前四个类都是由共同的父类数字类Number派生而来的。
包装类是最终类