企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
那么,类是什么,用来做什么?类定义了一组列特征和实现,而对象是它们的实现。形象的说,一个类对于对象来说就像一个通往金门的大桥。一个结构必须满足这个桥梁定义的需求:必须跨域一个差异,并至少两个接入点;区别是它们的材料和位置。应用在代码中也是一样,对象必须符合类的需求,是它的实例,并有着自身的特点。 声明一个类的基本语法如下: ~~~ class ClassName extends SuperClass, implements Interfac e { //... } ~~~ class 关键字表示要声明一个类。可以在一个文件中声明多个类。不加访问修饰符前缀 private 的类被认为是 public ,只要正确的导入就可以在任何地方访问,下一章将会介绍。私有类只有在声明的文件中可用。下面的类 A 是公共类,而 B 是私有类。 ~~~ class A { //... } private class B { //... } ~~~ 类名是一个或者多个字母数字字符的组合,包括下划线,以一个大写字母开始,这个约定被编译器强制实现,否则会抛出一个编译错误。类名可选的可以跟一个 extends 关键字,代表继承自某个父类。最终类的声明可以包括一个或者多个实现接口的声明(implenents)。对于每个 implements ,一个单独的类名或者接口名必须指定。 类中的功能被暴露为两种字段(也被称为成员): * 变量 : 值得占位符容器,供对象引用,或者函数定义。变量可以被有效的访问和修改值。 * 函数:对象或者类可以执行的操作。 变量和函数可以被声明为静态成员或者一个实例。 A 静态成员属于类本身,并总是可以访问;一个实例成员根据是否存在被指定到一个对象。 作为一个例子,假设的CMS中一个blog入口类被提供: ~~~ class Main { static function main() { var entry : BlogEntry = new BlogEntry(); entry.title = “My First Blog Entry”; entry.content = “Lorem ipsum ...”; trace(entry.title); } } class BlogEntry { public var title : String; public var content : String; public function new () { //... } } ~~~ 定义了两个类。Main 只是测试代码执行的入口点,而 BlogEntry 是CMS 业务逻辑的一部分。 BlogEntry 只定义了一个放置信息数据容器:两个变量的声明,title 和 content ,和一个方法 new ,留空了实现。 字段访问,就像在 main 函数中展示的,使用的是 点号 语法,和其他许多如C/C++/C# 和JAVA 等语言中类似。 要编译这个例子,保存代码为单独的文件,命名 Main.hx ,打开命令行,导航到文件保存的目录下然后输入以下命令: ~~~ haxe -main Main.hx -neko main.n ~~~ 会生成一个main.n 文件。这个可以在命令行中执行,并显示结果,命令如下: ~~~ neko main.n ~~~ 这里,Neko 是执行目标平台,但是任何支持的平台都可以使用。本章所有例子都兼容所有的 Haxe 支持平台,除非另有说明。 静态方法,就像前面例子中的 main 函数,将在后面讲述,但是记住当执行一段Haxe 代码时,总是需要一个类实现一个名字为 main 的静态方法,这将在启动时自动运行。包含这个方法的类必须在编译指令中使用 -main 开关指定。没有 -main 的编译会建立一个类库的输出;类库可以在其他应用中复用但是不能被自身使用。