使用对象

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

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";
}

这里我们创建了一个地址对象,假设用在地址本应用中。下载[url=http://java.sun.com/javafx/1/tutorials/core/usingObjects/Address.zip]Address.zip[/url]并解压两个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变量区分。下载[url=http://java.sun.com/javafx/1/tutorials/core/usingObjects/Customer.zip]Customer.zip[/url],在相同的目录中加压,并编译。

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文档,当你构建图形应用的时候。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值