JavaFX Script Programming Language 学习 No.3

 第三课 使用对象

 

一、对象是什么?

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

  
  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值