1.OOP:面向对象程序设计
2.类是构造对象的模板或蓝图
由类构造(construct)对象的过程称为创建类的实例(instance)
封装(encapsulation):从形式上看就是将数据和行为组合在一个包中,并对对象的使用者隐藏具体的实现方法。
对象中的数据称为实例字段(instance field),操作数据的过程称为方法(method)
这个对象的当前状态(state):作为一个类的实例,特定对象都有一组特定的实例字段值,这些值的集合就是这个对象的当前状态。
实现封装的关键在于,绝对不能让类中的方法直接访问其它类的实例字段。
OOP中可以扩展其它类来构建新类,所有其它类都扩展自Object
3.对象的三个主要特性:
• 对象的行为(behavior)—可以对对象施加哪些操作,或可以对对象施加哪些方法?
对象的行为是用可调用的方法定义的。
• 对象的状态(state)—当施加那些方法时,对象如何响应?
每个对象都保存着描述当前特征的信息。这就是对象的状态。对象的状态可能会随着时间而发生改变,但这种改变不会是自发的。对象状态的改变必须通过调用方法实现(如果不经过方法调用就可以改变对象状态,只能说明封装性遭到了破坏)。
• 对象标识(identity)—如何辨别具有相同行为与状态的不同对象?
每个对象都有一个惟一的身份(identity或称标识)。作为一个类的实例,每个对象的标识永远是不同的,状态常常也存在着差异。
4.识别类
首先从设计类开始,然后再往每个类中添加方法。
识别类的简单规则是在分析问题的过程中寻找名词,而方法对应着动词
5.类之间的关系:
依赖(dependence)即“uses-a”关系。如果一个类的方法使用或操纵另一个类的对象,我们就说一个类依赖于另一个类
应该尽可能地将相互依赖的类减至最少,即让类之间的耦合度最小。
聚合(aggregation),即“has-a”关系,聚合关系意味着类A的对象包含类B的对象。
继承(inheritance),即“is-a”关系,如果类A扩展类B,类A不但包含从类B继承的方法,还会拥有一些额 外的功能。
6.并不是所有的 类都具有面向对象特征。例如,Math类。
7.要想使用对象,就必须首先构造对象,并指定其初始状态。然后,对对象施加方法。
使用构造器(constructor)构造新实例。构造器是一种特殊的方 法,用来构造并初始化对象。
构造器的名字应该与类名相同。因此Date类的构造器名为Date。要想构造一个Date对象, 需要在构造器前面加上new操作符,如下所示:
new Date()
这个表达式构造了一个新对象。这个对象被初始化为当前的日期和时间。 如果需要的话,也可以将这个对象传递给一个方法:
System.out.println(new Date());
也可以将一个方法应用于刚刚创建的对象上。Date类中有一个toString方法。这个方法将返回日期的字符串描述。下面的语句可以说明如何将toString方法应用于新构造的 Date 对 象上
String s=new Date() . toString();
在这两个例子中,构造的对象仅使用了一次。通常,希望构造的对象可以多次使用,因此, 需要将对象存放在一个变量中
Date birthday = new Date();
deadline = birthday;
可以显式地将对象变量设置为null,表明这个对象变量目前没有引用任何对象。
deadline = null;



