封装和类
类是面向对象(OOP)编程的基础,类封装了存在关联的数据以及操作数据的函数,对象是类的具体实现。之所以要提出类和对象的概念,是因为它们的存在有助于软件开发,能清晰程序逻辑结构,能提升开发速度。
我想先从类的基本特性之一封装谈起。
在开发过程中我们不希望不断重复的书写一段相同的程序,所以我们引进循环和函数,绝大多数函数都需要处理来自外部的数据,这些数据要么来自于参数,要么是可见性高的数据(如全局变量)。无论是那种,随着程序的整个容量的不断扩大,要进行处理的数据越来越多,显而易见的结果是要么全局变量变得越来越多,要么是函数的参数列表变得的越来越长。此时出现了几个比较重要的问题。
- 记忆问题:当你想调用一个函数时,你费力地记着函数参数列表中各个参数的用处和可用类型
- 修改问题:当你想修改一处被广泛调用的变量名时,你难以寻找全部的调用点,调用它的函数可能被分散在各个不同文件的各处
- 适应性问题:因为函数的的内部具体实现不同,大体相似的函数却难以被复用
- ...
可见,仅有函数是不够的。
函数需要和他形影不离的数据在一起。
把彼此相关的数据和函数放在一起,隐