posts - 48,comments - 156,trackbacks - 0
一、类的定义

1、有了变量和函数,把它们和到一块不就成了类吗?

class People {     
    var name: String;    
    var age: Integer;    
}
class Hello {    
    var people: People;  
    function Greeting() {        
        println("Hello {people.name} ,You are {people.age} years old.");    
    }    
}

二、抽象类和接口

1、抽象类用 abstract 关键字修饰
abstract class People {    
    var name: String;   
    var age: Integer;   
}

和其他面向对象的语言一样,抽象类是不能创建实例的。

2、JavaFX 中没有接口 ,但是可以直接使用 Java 中的接口 
interface IHello{
    void Greeting();
}

二、类的继承

1、用 extends 关键字从另外一个类继承
class Man extends People{
    var sex:Boolean;
}
 
2、从抽象类或者接口继承,也用 extends 关键字,接口中的方法必须重载,用 override 关键字 
class Hello  extends IHello{
    var people: People;
    override function Greeting():Void {
        println("Hello {people.name} ,You are {people.age} years old.");
    }
}
3、JavaFX 可以多重继承,即继承多个类和多个接口 
 
三、对象的创建
JavaFX 一般用字面量方式创建对象,也可以用 new 例如
var
p = new People(); 
或者
var p = People{
    name:"小明"
    age:18
}
四、对象的初始化
1、JavaFX 的类没有构造函数,但是有一个 init 初始化块,当对象创建以后会运行这个块里的代码,例如
class People {
    init {
        name="Jone";
        println("Hello {name} ,You are {age} years old.");
    }
    var name: String;
    var age: Integer;    
}
var p =  new People();
输出:Hello Jone ,You are 0 years old.
2、还有一个 postinit 块,在所有初始化工作完成以后执行
3、isInitialized 函数,判断一个成员是否被初始化了,例如
class People {
    var name: String;
    var age: Integer; 
    init {
    //检查 name 是否被初始化
        if (isInitialized(name)){
            println("Hello {name}.");
        }else {
            println("What's your name?");
        }
    }  
}
//创建对象的时候初始化 name
var p = People{ name: "Jone" }
输出:Hello Jone.
//创建对象的时候没有初始化 name
var p = People{
    age: 18
}
输出:What's your name? 
五、包
和 Java 的用法完全一样
package 关键字
import 关键字
 
 
 
posted on 2009-03-10 22:23 左洸 阅读(1046) 评论(0)  编辑  收藏 所属分类: JavaFX 深入浅出

只有注册用户登录后才能发表评论。


网站导航: