4.1 面向对象程序设计概述
每个对象包含对用户公开的特定功能部分和隐藏的实现部分。
4.1.1类
由类构造对象的过程称为创建类的实例。
封装(数据隐藏)是与对象有关的。从形式上看,封装不过是将数据和行为组合在一个包里,并对对象的使用者隐藏了数据的实现方式。
对象中的数据:实例域, 方法:操纵数据的过程。、 对于每个特定的类实例(对象)都有实例域。这些值的集合就是 这个对象的当前状态。 无论何时,只要向对象发送一个信息,它的状态就有可能发生改变。
封装的关键:绝对不能让类中的方法直接地访问其他类的实例域。即程序仅仅通过对象的方法与对象数据进行交互。
OOP可以通过扩展一个类来建立另一个新的类。======继承
4.1.2对象三个特征
对象的行为:可以对对象施加哪些操作,或者可以对对象施加哪些方法
对象的状态:当施加哪些方法时,对象如何响应
对象的标识:如何辨别具有相同行为与状态的不同对象?
对象状态的改变必须通过调用方法实现(如果不通过方法调用就可以改变对象的状态,说明封装性遭到了破坏)
4.1.3识别类
首先从设计类开始,然后在往每个类中添加方法
识别类的简单规则是在分析问题的过程中寻找名词,而方法对应着动词。
4.1.4类之间的关系
依赖 聚合 继承
依赖(uses-a)关系:如果一个类的方法操纵另一个类的对象。对于将互相依赖的类减少至最小,称为让类之间的耦合度最小。
聚合(has-a)关系:类A的对象包含类B的对象
继承(is-a)关系
4.2使用预定于类
4.2.1对象与对象变量
构造对象-----指定其初始状态-------对对象应用方法
Java中使用构造器来构造新实例,构造器的名字应该与类名相同。对于构造器而言,必须
首先初始化变量deadline。可以用新构造的对象初始化这个变量deadline=new Date();
可以让这个变量引用一个已经存在的对象Date birthday=new Date(); deadline=birthday;
注意:一个对象变量并没有实际包含一个对象,而仅仅引用一个对象。
在Java中任何对象的值都是对存储在另外一个地方的对象的引用。new操作符返回值也是一个引用。
Date deadline=new Date();有两个部分。
表达式new Date()构造了一个Date类型的对象,并且它的值是对新创建对象的引用。这个引用存储在变量deadline中。
局部变量不会自动地初始化为null而必须通过调用new或将它们设置为null进行初始化。
4.2.2Java类库中的GregorianCalendar类
时间是用距离一个固定时间点的毫秒数表示。
类库设计者决定将保存时间与给时间点命名分开,所以标准Java类库分别包括了两个类:一个是用来表示时间点的Date类,另一个是用来表示日历表示法的GregorianCalendar类。
Date类只提供了少量的方法来比较两个时间点。例如before和after方法分别表示早和晚;Date类还有getDay、getMonth、getYear等方法。
4.2.3更改器方法与访问器方法
如何从封装的GregorianCalendar类对象内部的日期获得当前的年月日?
使用类中的get方法。 还有set方法 add方法
4.3用户自定义类
原文:https://www.cnblogs.com/Damocless/p/11821833.html