为什么要讨论模型——编程时类的定义是建模的结果。
模型是某种事物的一个简单表示。
从定义可以看出模型与其表示的事物并不完全相同。类是建模的结果。对模型的理解要注意以下几点:
1、模型是真实对象的表现,模型可以具有真实对象不具有的性质,也可以不具有真实对象的某些性质。这要看建立模型的目的或需求。如同样一名学生,在公安部门需要的身份信息与学校需要的身份信息不可能一样,建模时其模型就不可能相同。
2、模型可以做真实事物不能做到的或不容易做的。如用积木搭建房子比用真实的砖、瓦建材要容易的多;真实的学生成绩表不能我们不可能每天任意时刻都可以查询,而在计算机中的学生成绩表就可以每天任意时刻查询。
3、定义中的“表示”说明模型是表示事物的某种方法而已,而且表示方法可以不尽相同。如演示地球形状的模型可以用木头制作,也可以用泥塑制作,还可以用塑料制作。说明我们在建模时,对同一事物最后的建模可能不同,哪怕是同一个目的。
4、建模决定事物表示的优劣。优秀的建模能实现真实事物不能达到的目的,又能在使用时得心应手。编程者知识面越宽,建模就会越好,因为他能真正认识建模的事物。
宇宙中事物多种多样,人们总是习惯分门别类去认识它们。分门别类有利于找到相同点与不同点,通过总体的概括认识事物比一个一个独立认识它们效率高出很多,而这种概括同样可以使编程变得更有效、更容易。
建立模型的过程中所分析出的相关类是指具有相同属性与能力的建模对象。而同一个类中的不同具体的对象就是实例。
同一类表现基本相同,即具有相同的属性和能动性,而一类中的不同实例的状态则不可能完全相同,就像世界上不可能两片完全相同的叶子一样。如同属于兔子类(类)两只兔子(实例)可能一只在吃食物,另一只在睡觉;而这两只兔子各项生理特征也不可能完全相同,如心跳速度、毛色、体重等等。
注意:“对象”一词所指的东西是根据上下文不同既可指类,也可指实例,在此应该说是一个非准确的用语。
面向对象编程基本过程也是以建模分析和建立类为主要过程的。
1、搜集与分析客户要求:采用多种方法对客户的要求进行搜集与分析,搜集的越全面、越准确,对以后的编程越好。
2、设计系统,即面向对象的分析与设计。其中贯彻了“万物皆对象”的思想,即建模。
3、编写代码。根据系统的设计,定义系统中用到的类,并构建相应的实例,完成软件代码的编写。
4、测试代码。测试代码的准确性,即能否在任何情况下都能正确的工作。
5、分发、使用与维护软件。
由以上步骤也可以看出,以上步骤中后四个几乎都是在围绕类的定义与使用开展工作。