一类的定义
有了变量和函数把它们和到一块不就成了类吗?
class People {
var name: String;
var age: Integer;
}
class Hello {
var people: People;
function Greeting() {
println(Hello {peoplename} You are {peopleage} years old);
}
}
二抽象类和接口
抽象类用 abstract 关键字修饰
abstract class People {
var name: String;
var age: Integer;
}
和其他面向对象的语言一样抽象类是不能创建实例的
JavaFX 中没有接口 但是可以直接使用 Java 中的接口
interface IHello{
void Greeting();
}
二类的继承
用 extends 关键字从另外一个类继承
class Man extends People{
var sex:Boolean;
}
从抽象类或者接口继承也用 extends 关键字接口中的方法必须重载用 override 关键字
class Hello extends IHello{
var people: People;
override function Greeting():Void {
println(Hello {peoplename} You are {peopleage} years old);
}
}
JavaFX 可以多重继承即继承多个类和多个接口
三对象的创建
JavaFX 一般用字面量方式创建对象也可以用 new
var p = new People();
或者
var p = People{
name:小明
age:
}
四对象的初始化
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 years old
还有一个 postinit 块在所有初始化工作完成以后执行
isInitialized 函数判断一个成员是否被初始化了例如
class People {var name: String;var age: Integer; init {
//检查 name 是否被初始化
if (isInitialized(name)){println(Hello {name});}else {println(Whats your name?);}} }
//创建对象的时候初始化 name
var p = People{name:
Jone
}
输出Hello Jone
//创建对象的时候没有初始化 namevar p = People{age: }输出Whats your name?
五包
和 Java 的用法完全一样
package 关键字
import 关键字