在过程化程序设计中,我们可以把程序分为两个部分:数据部分和代码部分。其中,数据部分包括各种各样的变量。而代码部分则包括各种函数和模块。
我们知道,函数可以使用数据。比方说对数据取对数,或开平方。但是反过来,数据却不一定能使用函数。而且,函数甚至可以滥用数据。例如,我们可以求身份证号码的平方。虽然这么做本身没有意义,但是合法。
我们再来说数据使用函数的情况。数据是否永远不能使用函数呢?有没有什么特殊情况,能够让数据使用函数呢?答案是肯定的。这就是我们要介绍的方法(Method)。数据可以通过方法调用函数。如果你了解到这一点,那就朝面向对象的程序设计走出了第一步!
注意:面向对象的程序设计和过程化程序设计的思路完全不同。在面向对象的程序设计中,数据和代码并不是分成两个部分,而是被合并成了一个整体,成为各种类(Classes)。每一种类可以根据需要,生成各种对象。这就是面向对象的含义。然后,我们会利用对象解决各种问题。
每个对象有一系列特征。这就是属性(Properties 或者 Attributes)。各种对象还可以进行一系列活动。这就是前文讲到的方法。
如果现有的类不能满足需求,我们可以根据需要在旧的类基础上产生新的类。而新的类会继承旧的类之中的属性和方法。当然,新的类中通常还会增加一些功能。
对象是类表达含义的化身!这就好比大楼是图纸的化身。图纸上的各种想法,都会在大楼中体现出来。对象之间互相作用,交换数据或者使用方法。一个科学设计的类(或者说对象)能够保护敏感数据,防止非法访问。
在面向对象的程序设计中,数据和代码没有明显的区别:它们都是对象。这些概念其实并不抽象,而是源于实际工作。因此,它们在程序设计中十分重要。牢记,并非我们创造了这些虚拟的概念,而是这些概念反应了事实,关系以及各种情景。
不仅艺术源于生活,而高于生活。程序设计也是源于生活,而高于生活。