`
treemp3
  • 浏览: 23826 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

使用对象

阅读更多
什么是对象?怎么创建对象?这一节将为你讲述对象的基本概念、对象语法、以及如何在对象上触发事件。

Contents

-  What is an Object?
-  Declaring an Object Literal
-  Object Literal Syntax
-  Invoking Instance Functions


What is an Object?
什么是对象?

什么是对象?对象是一组状态和行为的组合。一句话:
对象的状态用属性来表示。对象的行为用函数来表示。理论上讲对象可以描述任何东西,从GUI组件(按钮、复选框、文本框)到抽象的东西(临时数据、财务记录、产品注册信息)。

Declaring an Object Literal
声明对象

在JavaFX编程语言里,用对象语法来创建变量:

Address {
     street: "1 Main Street";
     city: "Santa Clara";
     state: "CA";
     zip: "95050";
}

这里我们创建了一个地址对象,假设用在地址本应用中。下载Address.zip并解压两个class文件和AddressBook.fx。

---------------------------------------------------------------------
注意:这个Address.class文件(包括Address.class和Address$Intf.class)包含编译器所需的信息。如果你好奇他们怎么来的,创建Address类定义(Adress.fx),编译后就产生了Address.class。JavaFX语言在你的程序里产生了大量的预编译文件。它支持在大多数的编程任务中创建对象,包括复杂的可视化效果开发。在教程结束时将讨论如何编写自己的类。同时,您需要下载类似这样的例子。
---------------------------------------------------------------------

现在编译这个脚本:javafxc AddressBoox.fx;并没有任何输出,实际上编译已经成功了。

---------------------------------------------------------------------
注意:科学的讲,这个例子中的变量是实例变量。你可以认为实例变量是每个对象都包含的一组内置参数。实际上,参数这个词在早期的语言里使用(你仍然可以从旧的文档和例子中看到)。在面向对象的语言里面,实例和对象是同义词,这就是对象的来历。
---------------------------------------------------------------------

Object Literal Syntax
对象语法

对象的语法很容易学习和使用。第一个词(Address)是创建的对象类型。大括号里面的是对象体。其他(street、city、state、zip)是对象的实例变量。

多个对象用这样的形式来创建:
Address {
     street: "1 Main Street";
     city: "Santa Clara";
     state: "CA";
     zip: "95050";
}

Address {
     street: "200 Pine Street";
     city: "San Francisco";
     state: "CA";
     zip: "94101";
}

---------------------------------------------------------------------
注意:声明对象的时候,实例变量可以被逗号或空白分割,就像用分号一样。下面的声明也是正确的:

Address {
     street: "1 Main Street"
     city: "Santa Clara"
     state: "CA"
     zip: "95050"
}

Address {
     street: "200 Pine Street",
     city: "San Francisco",
     state: "CA",
     zip: "94101",
}


本教程主要使用分号。声明函数的时候要求用分号。
---------------------------------------------------------------------

你也可以将创建的变量赋给变量:
def addressOne = Address {
     street: "1 Main Street";
     city: "Santa Clara";
     state: "CA";
     zip: "95050";
}

def addressTwo = Address {
     street: "200 Pine Street";
     city: "San Francisco";
     state: "CA";
     zip: "94101";
}

或者在一个对象里嵌入另一个对象:
def customer = Customer {
     firstName: "John";
     lastName: "Doe";
     phoneNum: "(408) 555-1212";
     address: Address {
          street: "1 Main Street";
          city: "Santa Clara";
          state: "CA";
          zip: "95050";
     }
}

在上面最后的例子中,顾客对象包含了一些变量,也将原始的Address对象作为address变量包含其中。这种对象结构很常见,也展示了一个对象包含其他对象的时候程序员或IDE如何缩进代码。通过缩进,Address变量很容易与Customer变量区分。下载Customer.zip,在相同的目录中加压,并编译。

Invoking Instance Functions
触发实例函数

JavaFX中有许多可用的类,提供了你想利用的动作。通过对象的函数来实现这些动作。您将学习如何在自己的类里面为你的对象写函数,但现在我们将向你展示如何使用JavaFX中已有的动作。

您可用通过录入变量名(本例中为customer),加一个点号(.),加函数名来触发对象的函数。

def customer = Customer {
     firstName: "John";
     lastName: "Doe";
     phoneNum: "(408) 555-1212"
     address: Address {
          street: "1 Main Street";
          city: "Santa Clara";
          state: "CA";
          zip: "95050";
     }
}

customer.printName();
customer.printPhoneNum();
customer.printAddress();

结果如下:
Name: John Doe
Phone: (408) 555-1212
Street: 1 Main Street
City: Santa Clara
State: CA
Zip: 95050

这时候你可能会疑惑:这些函数名从哪里来的?我怎么知道一个对象包含了哪些变量或函数?您可以参考应用编程接口(API)文档。API文档列出了一个对象的变量和函数。它是我们知道对象的功能的唯一途径。你将在接下来的教程里学习使用API文档,当你构建图形应用的时候。
分享到:
评论

相关推荐

    C#中动态声明与使用对象数组实例

    在C#编程语言中,动态声明与使用对象数组是一种常见的操作,特别是在处理不确定数量的数据时。本实例将探讨如何在C#中实现这一功能,并关注数组的声明、使用、数据保护以及内存管理。 首先,我们要了解C#中的数组。...

    易语言源码使用对象创建快捷方式.rar

    易语言源码使用对象创建快捷方式.rar 易语言源码使用对象创建快捷方式.rar 易语言源码使用对象创建快捷方式.rar 易语言源码使用对象创建快捷方式.rar 易语言源码使用对象创建快捷方式.rar 易语言源码使用对象...

    js使用对象直接量创建对象的代码

    使用对象直接量创建对象的一般格式如下: var myobject = {属性名1:属性值1,属性2:属性值,…,属性名n:属性值n} 从这个定义中可以看出,这种定义方式实际上是声明一种类型的变量,并同时进行了

    实验3 输入输出流的实验.doc

    在实验中,我们定义了一个 Student 类,并使用对象输出流将 Student 对象写入到文件 student.dat 中,然后使用对象输入流读取文件中的对象。 5. 文件流的应用 文件流是指从文件中读取或写入数据的过程。在实验中,...

    对象数组的使用方法

    本文将围绕“对象数组的使用方法”这一主题展开,详细介绍对象数组的概念、创建方式、以及如何有效地使用对象数组来解决实际问题。 #### 一、对象数组概述 对象数组是指数组中的元素为对象的一种特殊类型的数组。...

    Unity对象池的理解和使用

    创建一个池子,池子里面一开始有预存有一定数量的对象,当你需要使用对象时直接从池子里取就可以,如果池子里面预存的数量不够就通过池子创建新的对象拿来用。当对象使用结束后不直接删除,而是归还给池子,如果池子...

    vba对象和对象集合

    在VBA的代码中,在使用对象的任一方法之前,必须先识别对象。 对象集合是一个包含几个其它对象的对象,而这些对象通常但并总是相同的类型。例如,在Excel中的Workbooks对象包含了所有已打开的Workbook对象。而VBA中...

    deePool高效的JavaScript对象池

    对象池的基本思想是预先创建一组对象,当需要使用对象时,从池中获取,不再使用时则归还到池中,而不是立即销毁。这样可以避免垃圾回收机制频繁地进行内存分配和释放,尤其是在高性能需求或者实时性要求高的场景下。...

    codesys面向对象的方法属性动作接口

    面向对象编程是指使用对象和类来实现编程的方法。这种方法可以实现复杂的编程逻辑,并且可以重用代码。codesys面向对象的方法属性动作接口提供了面向对象编程的基本概念,包括继承、多态和封装等。 2. codesys面向...

    php面向对象全攻略 (二) 实例化对象 使用对象成员

    接下来,我们来详细探讨实例化对象以及如何使用对象成员的详细知识点: ### 实例化对象 在PHP中,一旦一个类被定义,我们就可以使用new关键字来创建类的实例,即对象。创建对象的一般语法如下: ```php $对象名称...

    易语言对象操作word纯源码

    word操作,使用对象进行,关于如何学习的问题,给新人们几点建议:。1,VBAword.chm 这个知识库肯定是得看的,方便查找对象,属性,方法等;。2,对象.查看(),这个命令是必须使用的,同样是方便查找对象,方法,并了解在易语言中,...

    对象池简单Demo(资源包)

    通过"对象池package.unitypackage"这个资源包,你可以学习到如何在Unity中创建和使用对象池的具体实现,包括相关脚本和示例场景。对于初学者来说,这是一个很好的实践项目,能帮助理解对象池的工作原理和应用场景。...

    解决大漠对象创建失败

    "对象创建失败"是一个常见的编程或运行时错误,它可能出现在任何使用对象模型的系统中,包括大漠插件的使用过程中。下面我们将深入探讨这个问题以及可能的解决方案。 首先,我们要理解什么是对象创建。在面向对象...

    C++为什么要用指针而不直接使用对象?

    C++是一种强大的编程语言,它提供了多种方式来使用对象和指针。本文将探讨C++中使用指针和对象的策略,并解释为什么在某些情况下需要使用指针,而不是直接使用对象。 在C++中,对象可以通过两种方式来定义:使用...

    对象池

    2. **性能测试**:通过计时器衡量使用对象池前后的性能差异,展示对象池带来的优化效果。 3. **压力测试**:模拟高并发场景,查看对象池在大量请求下的表现和稳定性。 `TestObject.java` 文件可能定义了一个简单的...

    万能对象池【C#实现】

    例如,游戏开发中,经常使用对象池来管理粒子效果、精灵等游戏对象,避免频繁地创建和销毁导致的性能瓶颈。 总结来说,C#实现的万能对象池是通过泛型和面向对象的设计来提供一种通用的资源管理机制,优化了对象生命...

    Unity中对象池插件

    Unity中的对象池是一种优化游戏性能的技术,主要用于管理游戏对象,如敌人、...理解并熟练使用对象池插件,是优化Unity项目和提升用户体验的重要步骤。在实践中不断探索和调整,才能找到最适合项目的对象池解决方案。

    JAVA对象使用方法(新手必看).doc

    为了使用对象,我们需要创建对象的实例。在上面的代码中,我们创建了两个名为`d1`和`d2`的对象,并将它们初始化为`Dog`类的实例。我们可以使用点号符号来访问对象的属性和行为,例如`d1.name`、`d1.age`和`d1.jump()...

    第12篇-QTP对象探测器

    通过熟练使用对象探测器,测试人员可以更高效地进行测试脚本的编写和维护,从而提升整个软件测试流程的效率和质量。在进行软件测试时,尤其是对于复杂的应用程序,充分利用QTP对象探测器的功能,将有助于确保测试...

Global site tag (gtag.js) - Google Analytics