第三课 使用对象
一、对象是什么?
JavaFX Script 是一个面向对象的编程语言。对象包含属性和行为。
声明一个对象
示例代码1:
Address { street: "1 Main Street"; city: "Santa Clara"; state: "CA"; zip: "95050"; } |
使用对象需要定义一个class
示例代码2:
//Address.fx
class Address { var street: String; var city: String; var state: String; var zip: String; }
一个对象其实是一个对象类的实例。对象里的属性是类的属性的实例。一个对象实例必须用一对大括号括起来。
在使用中这样定义一个实例
示例代码3:
def myAddress = Address { street: "1 Main Street"; city: "Santa Clara"; state: "CA"; zip: "95050"; }
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类的定义
示例代码4:
class Customer { var firstName: String; var lastName: String; var phoneNum: String; var address: Address; function printName() { println("Name: {firstName} {lastName}"); } function printPhoneNum(){ println("Phone: {phoneNum}"); } function printAddress(){ println("Street: {address.street}"); println("City: {address.city}"); println("State: {address.state}"); println("Zip: {address.zip}"); } }
[说明]:在Customer类里,定义了四个属性和三个函数。其中有一个属性是一个对象,它的类型是Address类。
示例代码5:
var previewSpotX = 12; var previewSpotY = 50;
var overlaySpotX = 95; var overlaySpotY = 55;
var previewDimOverlay = Group {
visible: false;
content:[
Rectangle{
x:7 y: 25 width: 685 height: 332
arcWidth: 10 arcHeight: 10
fill: Color.rgb(0,0,0,0.4)
blocksMouse: true
}
}
}
[说明]:在这个代码段里,visible和content实例属于Group对象。x, y, width, height, arcWidth, arcHeight, fill, and blockMouse 实例属于Rectangle对象。Group存储在名为previewDimOverlay的变量里。
引用实例函数
实例变量、实例对象也可以包含实例函数。引用实例函数可以通过变量名加点(.)加上函数名的方式。
示例代码6:
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