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;