ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
和许多面向对象语言类似,类是大多数 Haxe 程序中主要的数据结构。每个 Haxe 类都有一个确定的名字,一个隐含的路径和零或者多个类字段。这里我们将关注类的一般结构和它们的关系,而 [类字段(第4章)](http://#) 的细节部分在后面进行讲解。 如下代码示例作为本节剩余部分的基础: ~~~ class Point { var x : Int; var y : Int; public function new(x,y) { this.x = x; this.y = y; } public function toString() { return "Point("+x+","+y+")"; } } ~~~ 从语义上讲,这个类表示二维空间内的一个点,但是这里它是什么并不重要。我们来描述一下这个结构: * 关键字 `class` 表示我们定义一个类 * `Point` 是类的名称,可以使用任何符合类型标识符规则的字符 * 包围在花括号 `{}` 中间的是类的字段 * 它由两个 Int 类型变量字段 `x` 和 `y` 组成 * 后面是一个特定的函数字段叫做 `new` ,它是类的构造函数 * 还有一个普通的函数 `toString` 在 Haxe 中有一个特殊类型,可以兼容所有的类: >[warning] **类型** :Class<T> 这个类型可以兼容所有类型,也就是说,所有类(而不是它们的实例)可以被分配给它。在编译时,`Class<T>` 是所有类的基础类型。然而,这个关系并不会反映在生成的代码中。当一个 API 需要的一个值是一个类而非某个特定的类型时,可以使用这个类型。这应用到 [Haxe 反射API (第10.7节)](http://#) 中的一些方法。