f() // 调用 A.f() super<B>.f() // 调用 B.f() } } fun main(args: Array<String>){ val c = C(); c.f() } 属性重写属性重写 使用 override 关键字,属性必须具有兼容类型,每一个声明的属性都可以通过初始化程序或者 getter 方法被重写。
用幕后字段,我们可以在getter和setter中做很多事,一般用于让一个属性在不同的条件下有不同的值,比如下面这个场景: class Person(var gender:Gender){ var name:String = "" set(value) { field = when(gender){ Gender.MALE -> "Jake.$value" Gender.FEMALE -> "Rose.$value" } } } enum class Gende...
fun main(args: Array<String>) { DataProcessor.process() // I am processing data ... } 一个类只能有1个伴生对象。 4.5 数据类 顾名思义,数据类就是只存储数据,不包含操作行为的类。Kotlin的数据类可以为我们节省大量样板代码(Java 中强制我们要去写一堆getter、setter,而实际上这些方法都是“不言自...
enum class LogLevel(val id: Int){ VERBOSE(0), DEBUG(1), INFO(2), WARN(3), ERROR(4), ASSERT(5); fun getTag(): String{ return "$id, $name" } override fun toString(): String { return "$name, $ordinal" } } // 密封类: 里面定义有限个子类, 用法和枚举一样一样的 // 每个枚...
一个声明属性、一个getter,一个setter,编译时会自动生成这些模板代码 1. 2. 3. 4. 5. 使用点目标声明被用来说明要注解的元素,而在java中只需要对字段或者函数添加@Rule注解就可以。 @get:Rule 1. @get: 使用点目标 Rule:注解名称 class foler{
枚举:enum class 密封类:sealed class 类的继承和方法重写 Kotlin的类和方法默认都是public final的,如果想要让类可以被继承、方法可以被重写,需要在类声明和方法声明前添加open关键字。 open class Base(var info: String){ open fun show(){ println("base info:$info") ...
简洁主要指的是Kotlin支持隐藏例如getter、setter等Java样板代码,并且有大量的标准库以及灵活的重载和扩展机制,来使代码变得更加直观和简洁。 安全主要是说空值安全的控制以及类型自动检测,帮助减少NullPointerException以及ClassCastException。 与Java互操作以为这可以与Java相互调用、混合调试以及同步重构,同时支持Java到kotli...
Kotlin 会自动给属性加上 setter 和 getter 方法 代码语言:javascript 复制 classRabbitConfig(varenable:Boolean=true,varenableLog:Boolean=true,@TransientvaruiConfig:RabbitUiConfig=RabbitUiConfig(),varstorageConfig:RabbitStorageConfig=RabbitStorageConfig(),varmonitorConfig:RabbitMonitorConfig=RabbitMonitorConfig()...
classNamePrinter(valfirstName: String,vallastName: String) { valfullName: Stringbylazy {"$firstName$lastName"} funprintName(){ println(fullName) } } 注意by lazy 所赋值的变量必须为 val 类型。 自定义 getter 和 setter 对于一些继承至其他类的情况,可以自定义 getter 和 setter, ...
kotlin官方参考手册(中文版).pdf,KKoottlliinn 语语⾔⾔⽂⽂档档 概概述述 ⽤⽤ Kotlin 进进⾏⾏服服务务器器端端开开发发 Kotlin ⾮常适合开发服务器端应⽤程序,允许编写简明且表现⼒强的代码, 同 保持与现有基于 J ava 的技术栈的完全兼容性 以及