我对编程相当陌生,有一件事让我感到困惑。什么是类,如何使用类?我明白了一点,但我似乎找不到完整的答案。
顺便说一句,如果这是特定于语言的,那么我正在使用 PHP 进行编程。
编辑:还有一件事我忘了说。具体来说,我的意思是问如何在类中使用定义函数。我见过 PHP 代码的示例,其中函数是在类中定义的,但我无法真正理解为什么。
尽可能简洁:类描述了可以对其自身执行操作的数据集合。
例如,您可能有一个表示图像的类。此类的对象将包含描述图像所需的所有数据,然后还将包含旋转、调整大小、裁剪等方法。它还包含可用于向对象询问其自身属性的方法,例如 getColorPalette 或 getWidth。这与能够直接访问原始(非对象)数据集合中的调色板或宽度相反 - 通过通过类方法进行数据访问,对象可以强制保持一致性的约束(例如,您不应该能够更改宽度变量而不实际将图像数据更改为该宽度)。
这就是面向对象编程与过程编程的不同之处。在过程编程中,你有数据,也有函数。这些函数作用于数据,但不存在数据的“所有权”,并且数据和使用它的函数之间没有基本的联系。
在面向对象的编程中,对象是数据与操作的组合。每种类型的数据都有一组定义的可以对其自身执行的操作,以及一组定义的属性,允许函数和其他对象以定义的、尊重约束的方式读写。
重点是将程序的各个部分相互解耦。使用 Image 类,您可以确信所有操作图像数据的代码都在 Image 类的方法中。您可以确定没有其他代码会以意想不到的方式破坏图像的内部结构。另一方面,图像类之外的代码可以知道有一种定义的方法来操作图像(调整大小、裁剪、旋转方法等),而不必担心图像数据的确切存储方式或图像的存储方式功能已实现。
编辑:有时很难理解的另一件事是术语“类”和“对象”之间的关系。 “类”是对如何创建特定类型的“对象”的描述。 Image 类将描述存储图像数据所需的变量,并给出所有 Image 方法的实现代码。 Image 对象,称为图像类的“实例”,是该描述的特定用途,用于存储一些实际数据。例如,如果要表示五个图像,则将有五个不同的图像“对象”,它们都属于相同的图像“类”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)