我如何使用课程?

2024-02-01

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

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

编辑:还有一件事我忘了说。具体来说,我的意思是问如何在类中使用定义函数。我见过 PHP 代码的示例,其中函数是在类中定义的,但我无法真正理解为什么。


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

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

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

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

重点是将程序的各个部分相互解耦。使用 Image 类,您可以确信所有操作图像数据的代码都在 Image 类的方法中。您可以确定没有其他代码会以意想不到的方式破坏图像的内部结构。另一方面,图像类之外的代码可以知道有一种定义的方法来操作图像(调整大小、裁剪、旋转方法等),而不必担心图像数据的确切存储方式或图像的存储方式功能已实现。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我如何使用课程? 的相关文章

  • JavaScript - 类根据条件扩展

    事情是这样的 我有一个名为 A 的主课 我希望这个班级能够扩展 B 级 class A extends B 但事实上 我希望 B 类在特定条件下扩展 C D 或 E class B extends B1 or class B extends
  • 如何在 Angular 2 应用程序中从 TypeScript/JavaScript 中的字符串获取类?

    在我的应用程序中 我有这样的内容 user ts export class User 现在 我这样做 应用程序组件 ts callAnotherFunction User 如果我将类名作为字符串 即 我该如何做到这一点 User 如果可能的
  • 检查一个类是否是另一个类的子类

    我想在不创建实例的情况下检查一个类是否是另一个类的子类 我有一个类 它接收类名作为参数 作为验证过程的一部分 我想检查它是否属于特定的类系列 以防止安全问题等 有什么好的方法可以做到这一点吗 is subclass of http php
  • 内联函数以及类和头文件

    头文件中定义的任何函数都会自动内联吗 如果我在类中声明一个函数并使用关键字 inline 在外部给出定义 那么这个函数会是内联的吗 如果是 为什么这不违反内联函数应在声明时赋予主体的法律 类定义中定义的任何函数都是内联的 任何标记的功能in
  • 为什么在标头内的类声明中声明变量时会出现错误?

    我正在尝试创建一个包含简单整数的类 当然 它使用头文件之类的 这是代码 class h class consolBuf private int buffersize1 10 Data member initializer is not al
  • Swift:协议、结构、类

    我开始学习 Swift 语言 但在理解协议 结构和类方面遇到了困难 我来自 Android 方面的编程 所以我相信 Swift 协议基本上是 Java 接口 其中每一个的正确用例是什么 这些类比并不 完全 正确 但这就是我所理解的要点 是的
  • 使类只能从特定类实例化

    假设我有 3 节课class1 class2 and class3 我怎样才能拥有它class1只能通过实例化class2 class1 object new class1 但不是 class3 或任何其他类 我认为它应该与修饰符一起使用
  • 如何为类本身(而不是类的实例)选择自定义字符串表示形式?

    考虑这个类 class foo object pass 默认的字符串表示形式如下所示 gt gt gt str foo
  • Delphi - 如果没有创建类,为什么这个函数可以工作?

    考虑这个类 unit Unit2 interface type TTeste class private texto string public function soma a b integer string end implementa
  • 类函数/变量在使用之前是否必须声明?

    所以我在学习课程时偶然发现了一些对我来说相当尴尬的事情 class Nebla public int test printout return x void printout printout2 private int x y void p
  • 隐式超级构造函数 Person() 未定义。必须显式调用另一个构造函数?

    我正在开发一个项目 但收到错误 隐式超级构造函数 Person 未定义 必须显式调用另一个构造函数 我不太明白它 这是我的人物课程 public class Person public Person String name double D
  • 为什么我在 R 向量的类别中看到“整数”而不是“向量”

    为什么从数据框中切片的列的数据类型显示为 整数 而不是 向量 df lt data frame x 1 3 y c a b c x y 1 1 a 2 2 b 3 3 c c1 lt df 1 1 1 2 3 class c1 1 inte
  • 为什么在 php 类中作为数组项的函数不起作用

    比如我有这样一段代码 效果很好 但是如果 A 不仅仅是一个变量 而且是一个类方法 那么这不起作用
  • PHP Microsoft Excel 文件生成/导出类

    我一直在寻找一个好的 Excel 文件生成类 但还没有找到 我的首要问题是 虽然我可以在 Excel 中打开导出的文件 运行 2007 年 但我总是收到一条警告 文件的格式与文件扩展名不同 我注意到 phpMyAdmin 中的 Excel
  • 已删除的类实例上的方法仍然有效吗?

    我在 Visual C 2010 上有这段代码 include
  • 如何清除 ruby​​ 中 rspec 测试之间的类变量

    我有以下课程 我想确保类 url 只为所有实例设置一次 class DataFactory url nil def initialize begin if url nil Rails logger debug Setting url url
  • 在类中设置默认值

    我正在用 Python 创建一个类 但我不确定如何正确设置默认值 我的目标是为所有类实例设置默认值 也可以通过类方法对其进行修改 但是 我希望在调用方法后恢复初始默认值 我已经能够使用下面所示的代码使其工作 它不是很 漂亮 所以我怀疑这是解
  • 从另一个类添加 Swing 组件

    我正在学习java 我正在尝试从另一个类向我的框架添加一个菜单栏 练习将代码划分为多个类以更好地组织程序 这是我的代码示例 public class MainApp public static void main String args C
  • Python函数重载

    我知道 Python 不支持方法重载 但我遇到了一个问题 我似乎无法以一种很好的 Pythonic 方式解决它 我正在制作一个游戏 其中一个角色需要射击各种子弹 但是如何编写不同的函数来创建这些子弹 例如 假设我有一个函数 可以创建一颗以给
  • java中如何找到class文件的包

    我正在编写一个使用 class 文件的 java 程序 我希望能够读取文件系统上的 class 文件 使用 InputStream 并确定它所在的包 该 class 文件可能不在一个好的包目录结构中 它可能位于某个随机位置 我怎样才能做到这

随机推荐