从零开始系列:
属性(Property)和域(Field)
Kotlin中声明一个属性可以使用val
或var
关键字。var
表示为可变属性,val
表示为只读属性。
class Test {
val x = 0;
var y = 1.0f
}
自定义的 Getter && Setter
var name: String
get() = name
set(value) {
"The name is $name"
}
编译期常数值
如果属性值载编译期间就能确定,则可以使用const
修饰符,将属性标记为编译器常数值,这类属性必须满足以下所有条件:
必须是顶级属性,或者是一个
object
的成员值被初始化为
String
类型,或基本类型不存自定义的取值方法
object Test3 {
const val TEXT: String = "Hello"
}
接口
Kotlin中的接口与Java8非常类似,接口中可以包含抽象方法的声明,也可以包含方法的实现。接口与抽象类的区别在于,接口不能存储状态数据,接口可以拥有属性,但这些x属性必须是抽象的,或者必须提供访问器的自定义实现。
接口使用interface
关键字来定义:
interface Test2 {
fun test1()
fun test2(str: String): String {
return "Hello $str"
}
}
实现接口
类或者对象可以实现一个或多个接口:
object Test3 : Test2 {
override fun test1() {
print("Hellol")
}
}
class Test4 : Test2 {
override fun test1() {
print("World")
}
}
接口中的属性
接口中声明的属性要么是抽象的,要么提供访问器的自定义实现。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。