从零开始系列:segmentfault
Kotlin中声明一个属性能够使用val
或var
关键字。var
表示为可变属性,val
表示为只读属性。对象
class Test { val x = 0; var y = 1.0f }
var name: String get() = name set(value) { "The name is $name" }
若是属性值载编译期间就能肯定,则能够使用const
修饰符,将属性标记为编译器常数值,这类属性必须知足如下全部条件:接口
必须是顶级属性,或者是一个object
的成员get
值被初始化为String
类型,或基本类型编译器
不存自定义的取值方法编译
object Test3 { const val TEXT: String = "Hello" }
Kotlin中的接口与Java8很是相似,接口中能够包含抽象方法的声明,也能够包含方法的实现。接口与抽象类的区别在于,接口不能存储状态数据,接口能够拥有属性,但这些x属性必须是抽象的,或者必须提供访问器的自定义实现。class
接口使用interface
关键字来定义:test
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") } }
接口中声明的属性要么是抽象的,要么提供访问器的自定义实现。