Java知识点复习(二)
面向对象的程序由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。
oop将数据摆在第一位,然后考虑操作数据的算法。
对象
要使用OOP,要了解对象的三个主要特性:
- 对象的行为(behavior) ———— 可以对对象施加哪些操作,或可以对对象施加哪些方法?
- 对象的状态(state) ———— 当施加那些方法时,对象如何响应?
- 对象标识(identity) ———— 如何辨别具有相同行为与状态的不同对象?
类之间的关系
- 依赖(“uses-a”)
如果一个类的方法操作另一个类的对象,我们就说一个类依赖另一个类 - 聚合(“has-a”)
聚合意味着类A的对象包含类B的对象 - 继承(“is-a”)
类A扩展类B,类A不但包含从类B继承的方法,还会拥有一些额外的功能
使用预定义类
对象与对象变量
要想使用对象,就必须首先构造对象,并指定其初始状态。然后,对对象应用方法。
構造器(constructor)
用来构造新实例。构造器是一种特殊的方法,用来构造并初始化对象。
构造器的名字应与类名相同。
以Date类为例,Date类的构造器名为Date。构造一个Date对象,需要在构造器前面加上new操作符。
new Date()
这个表达式构造一个新对象,这个对象被初始化啊为当前的日期和时间。
为了让构造的对象能多次使用,将对象存放在一个变量
Date birthday = new Date()
下图显示了引用新构造的对象变量birthday
在对象与对象变量之间存在一个重要的区别。例如
Date deadline //deadline doesn’t refer to any object
定义了一个对象变量deadline,它可以引用Date类型的对象。
但是,变量deadline不是一个对象,实际上也没有引用对象。
必须初始化变量deadline,有两个选择。一是用新构造的对象初始化这个变量
deadline = new Date()
二是让这个变量引用一个已存在的对象:
deadline = birthday
现在两个变量引用同一个对象
一个对象变量并没有实际包含一个对象,而仅仅引用一个对象。
在Java中,任何对象变量的值都是对存储在另外一个地方的一个对象的引用
Date deadline = new Date()
表达式new Date()构造了一个Date类型的对象,并且它的值是对新创建对象的引用。这个引用存储在变量deadline中。
可以将对象变量设为null,表明这个对象变量目前没有引用任何对象。
deadline = null;