我如何使用课程?

wai*_*933 3 class

我对编程很新,而且有一件事我很困惑.什么是课程,我该如何使用?我理解了一点,但我似乎找不到完整的答案.

顺便说一句,如果这是特定于语言的,那么我正在用PHP编程.

编辑:还有别的我忘了说.具体来说,我想问一下如何在类中使用定义函数.我已经看到了PHP代码的示例,其中函数在类中定义,但我不能理解为什么.

Tyl*_*nry 21

尽可能简洁:类描述了可以对自身执行操作的数据集合.

例如,您可能有一个表示图像的类.此类的对象将包含描述图像所需的所有数据,然后还包含旋转,调整大小,裁剪等方法.它还可以使用方法来向对象询问其自身的属性,比如getColorPalette或getWidth.这与能够直接访问原始(非对象)数据集合中的颜色调色板或宽度相反 - 通过数据访问通过类方法,对象可以强制执行保持一致性的约束(例如,您不应该能够更改宽度变量而不实际将图像数据更改为该宽度).

这就是面向对象编程与过程编程的不同之处.在过程编程中,您拥有数据并且具有函数.这些函数对数据起作用,但数据没有"所有权",数据和使用它的函数之间没有基本连接.

在面向对象的编程中,您拥有与操作结合的数据对象.每种类型的数据都有一组可以对其自身执行的已定义的操作,以及一组定义的属性,它允许函数和其他对象以定义的,受约束的方式进行读写.

关键是要将程序的各个部分相互分离.使用Image类,可以确保操作图像数据的所有代码都在Image类的方法中.您可以确定没有其他代码会以意想不到的方式与您的图像内部混淆.另一方面,图像类之外的代码可以知道有一种定义的方式来处理图像(调整大小,裁剪,旋转方法等),而不必担心图像数据的确切存储方式或图像如何功能实现.

编辑:有时难以理解的另一件事是术语"类"和"对象"之间的关系."类"是如何创建特定类型的"对象"的描述.Image类将描述存储图像数据所需的变量,并为所有Image方法提供实现代码.Image对象,称为图像类的"实例",是该描述的特定用途,用于存储一些实际数据.例如,如果要表示五个图像,则会有五个不同的图像"对象",所有图像都是相同的"类".