上次介绍了如何从现实世界的对象抽象出软件系统中的对象,本次介绍如何从软件系统中的对象抽象出需要在软件系统中创建的类型。而程序在运行过程中使用的是对象,所以在运行的时候需要根据类型创建(new)对象。
从软件系统中的对象抽象出类型
在10
路公交系统中有很多10
路车,那么在10
路公交虚拟系统中是否需要把每个对象都进行模拟?实际有多少汽车,在模拟系统中就创建多少汽车,这是不现实的,当数量很大的时候,没有办法实现,或者如果增加或者减少汽车就需要重新修改系统。
既然不能把现实中的每个对象都模拟到系统中,那么如何来模拟现实世界?
通常的做法是构造一个类型,用这个类型来表示一些对象的集合,当需要使用某个对象的时候,可以使用这个类型创建一个对象。
表1
列出了4
辆汽车的相关属性。
表1
汽车示例
汽车/
属性
|
编号
|
方向
|
位置
|
汽车1
|
辽B-31274
|
百合山庄——沙河口火车站
|
黄河路300
米
|
汽车2
|
辽B-31288
|
百合山庄——沙河口火车站
|
软件园路50
米
|
汽车3
|
辽B-32293
|
沙河口火车站——百合山庄
|
西南路200
米
|
汽车4
|
辽B-31287
|
沙河口火车站——百合山庄
|
西安路150
米
|
根据这些汽车创建类型的过程,就是删除对象的具体的值,形成一个抽象的对象,然后这些没有属性值的对象就相同了,这个对象就是抽象后的类型。
删除属性值之后上面的汽车对象都变成了:
某个汽车 有一个编号 有方向 有位置
这样就可以在软件系统中创建一个类型:
汽车:有一个编号,有方向,有位置。
这个抽象的过程就是删除对象的具体的属性。
根据类型创建对象
抽象出类型之后,如果需要描述汽车1
,可以创建汽车类型的对象,然后把它车牌号赋值为“辽B-31274
”,方向赋值为“百合山庄——沙河口火车站”,位置赋值为“黄河路300米”。这样就形成了软件系统中的对象,它又表示了现实世界中的一辆汽车。
具体在Java
中如何实现我们下一次介绍。
下一次: 第二十七讲 类的定义
李绪成 CSDN Blog:
http://blog.csdn.net/javaeeteacher