Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Class 如何使用类?_Class - Fatal编程技术网

Class 如何使用类?

Class 如何使用类?,class,Class,我对编程相当陌生,有一件事我很困惑。什么是类,如何使用类?我懂一点,但似乎找不到完整的答案 顺便说一下,如果这是特定于语言的,那么我将使用PHP编程 编辑:还有件事我忘了说。具体来说,我想问的是如何在类中使用定义函数。我见过PHP代码的例子,其中函数是在类中定义的,但我真的不明白为什么 这是一个关于类和对象的好页面: 尽可能简洁:类描述了一组可以对自身执行操作的数据 例如,您可能有一个表示图像的类。此类对象将包含描述图像所需的所有数据,然后还将包含旋转、调整大小、裁剪等方法。它还将包含可用于询问

我对编程相当陌生,有一件事我很困惑。什么是类,如何使用类?我懂一点,但似乎找不到完整的答案

顺便说一下,如果这是特定于语言的,那么我将使用PHP编程


编辑:还有件事我忘了说。具体来说,我想问的是如何在类中使用定义函数。我见过PHP代码的例子,其中函数是在类中定义的,但我真的不明白为什么

这是一个关于类和对象的好页面:


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

例如,您可能有一个表示图像的类。此类对象将包含描述图像所需的所有数据,然后还将包含旋转、调整大小、裁剪等方法。它还将包含可用于询问对象自身属性的方法,如getColorPalette或getWidth。这与能够直接访问原始(非对象)数据采集中的颜色托盘或宽度不同——通过类方法进行数据访问,对象可以强制执行保持一致性的约束(例如,如果不将图像数据实际更改为该宽度,则不应更改宽度变量)

这就是面向对象编程与过程编程的不同之处。在过程编程中,你有数据,也有函数。函数作用于数据,但数据没有“所有权”,数据和使用数据的函数之间也没有根本的联系

在面向对象编程中,对象是数据和动作的组合。每种类型的数据都有一组定义的操作,可以对其自身执行,以及一组定义的属性,允许函数和其他对象以定义的、尊重约束的方式进行读写

关键是将程序的各个部分彼此分离。使用Image类,可以确保所有操纵图像数据的代码都在Image类的方法中。您可以确定,没有其他代码会以意外的方式处理图像的内部。另一方面,图像类之外的代码可以知道有一种已定义的操作图像的方法(调整大小、裁剪、旋转方法等),而不必担心图像数据是如何存储的,或者图像函数是如何实现的


编辑:还有一件事有时很难理解,那就是术语“类”和“对象”之间的关系。“类”是对如何创建特定类型的“对象”的描述。图像类将描述存储图像数据所需的变量,并给出所有图像方法的实现代码。图像对象称为图像类的“实例”,是该描述用于存储某些实际数据的特定用途。例如,如果有五个图像要表示,那么将有五个不同的图像“对象”,它们都属于同一图像“类”

类是面向对象编程(OOP)范例中使用的术语。它们为您的代码提供了抽象、模块化和更多功能。面向对象编程不是语言特定的,支持它的语言的其他例子是C++和java。
我建议youtube了解基本知识。例如,和其他相关的讲座。

由于您使用的是PHP,我将在我的代码示例中使用它,但大多数内容都应该适用。 OOP将一切都视为对象,对象是方法(函数)和变量的集合。在大多数语言中,对象在代码中表示为类。 以下面的代码为例:

class person
{
   $gender = null;
   $weight = null;
   $height = null;
   $age = null;
   $firstName = null;
   $lastName = null;
   function __CONSTRUCT($firstName, $lastName)
   {
      //__CONSTRUCT is a special method that is called when the class is initialized
      $this->firstName = $firstName;
      $this->lastName = $lastName;
   }
}
这是一个有效的(如果不是完美的)类当您使用此代码时,首先必须初始化该类的实例,就像在变量中复制它一样:

$steve = new person('Steve', 'Jobs');
然后,当您想要更改某些属性时(从技术上讲,这不是正确的词,因为PHP中没有属性,但请注意,在本例中,我指的是变量)。我们可以这样访问它们:

$steve->age = 54;

注意:这假设您对编程有点熟悉,我想您是这样的

课堂就像一幅蓝图。假设你在做一个有房子的游戏。你会有一个“家庭”课程。这门课描述房子,说它能做什么,能对它做什么。可以有属性,如高度、宽度、房间数量、所在城市等。还可以有“方法”(类内函数的别致名称)。例如,您可以有一个“Clean()”方法,该方法将告诉房子里的所有人清洁它

现在假设有人在玩你的游戏,并单击“新建房子”按钮。然后,您将从该类创建一个新对象。在PHP中,您可以编写“
$house=newhouse;
”,现在$house具有类的所有属性和方法

你可以建造任意多的房子,它们都有相同的属性,你可以改变它们。例如,如果住在房子里的人决定再增加一个房间,您可以编写“
$house->numberOfRooms++;”
”。如果房屋的默认房间数为4,则该房屋将有5个房间,而所有其他房屋将有4个房间。如您所见,属性从一个实例到另一个实例是独立的

这是基础;关于类还有很多东西,比如继承、访问修饰符等等

现在,你可能会问自己为什么这个有用。好的,面向对象编程(OOP)的要点是把程序中的所有东西都看作独立的对象,试图设计它们,使它们可以在不考虑上下文的情况下使用。例如,您的房屋可能是一个独立变量,可能位于房屋数组中。如果您有一个具有“居住”属性的“Person”类,那么您的房子可能就是该属性

这就是cl背后的理论
<?php
class SampleClass {
   function __construct() {
       print "In SampleClass constructor\n";
   }
}

// In SampleClass constructor
$obj = new SampleClass ();
?> 
CarClass theCar = new CarClass(); //
CarClass theCar = new CarClass(); //In a way this says this word "car" will be a car
theCar.Color = red; //Given the instance of a car we can add that color detail.