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 關鍵字