Kotlin-13-对象表达式和对象声明
Kotlin 对象表达式和对象声明
Kotlin 用对象表达式和对象声明来实现创建一个对某个类做了轻微改动的类的对象,且不需要去声明一个新的子类。
对象表达式
实现匿名内部类
通过对象表达式实现一个匿名内部类的对象用于方法的参数中:
window.addMouseListener(object : MouseAdapter() {
override fun mouseCli...
2020-05-02 08:28:32 |
Kotlin
Kotlin-12-枚举类
Kotlin 枚举类
枚举类最基本的用法是实现一个类型安全的枚举。
枚举常量用逗号分隔,每个枚举常量都是一个对象。
enum class Color{
RED,BLACK,BLUE,GREEN,WHITE
}
枚举初始化
每一个枚举都是枚举类的实例,它们可以被初始化:
enum class Color(val rgb: Int) {
RED(0xFF0000),...
2020-05-02 08:28:32 |
Kotlin
Kotlin-11-泛型
泛型
泛型,即 “参数化类型”,将类型参数化,可以用在类,接口,方法上。
与 Java 一样,Kotlin 也提供泛型,为类型安全提供保证,消除类型强转的烦恼。
声明方式
声明一个泛型类:
class Box<T>(t: T) {
var value = t
}
创建类的实例时我们需要指定类型参数:
val box: Box<Int> = Bo...
2020-05-02 08:28:32 |
Kotlin
Kotlin-10-数据类和密封类
数据类
Kotlin 可以创建一个只包含数据的类,关键字为 data:
data class User(val name: String, val age: Int)
编译器会自动的从主构造函数中根据所有声明的属性提取以下函数:
equals() / hashCode()
toString() 格式如 "User(name=John, age=42)"
componentN() f...
2020-05-02 08:28:32 |
Kotlin
Kotlin-09-拓展
Kotlin 扩展
Kotlin 可以对一个类的属性和方法进行扩展,且不需要继承或使用 Decorator 模式。
扩展是一种静态行为,对被扩展的类代码本身不会造成任何影响。
扩展函数
扩展函数可以在已有类中添加新的方法,不会对原类做修改。
定义形式
扩展函数定义形式:
fun receiverType.functionName(params){
body
}
re...
2020-05-02 08:28:32 |
Kotlin
Kotlin-08-接口
Kotlin 接口
Kotlin 接口与 Java 8 类似,使用 interface 关键字定义接口,允许方法有默认实现:
interface MyInterface {
fun bar() // 未实现
fun foo() { //已实现
// 可选的方法体
println("foo")
}
}
ps: 对比 java8 的...
2020-05-02 08:28:32 |
Kotlin
Kotlin-07-继承
Kotlin 继承
Kotlin 中所有类都继承该 Any 类,它是所有类的超类,对于没有超类型声明的类是默认超类:
ps: java 中默认继承自 Object
Any 的函数
Any 默认提供了三个函数:
equals()
hashCode()
toString()
注意:Any 不是 java.lang.Object。
open 修饰被继承的类
如果一个类要被继承...
2020-05-02 08:28:32 |
Kotlin
Kotlin-06-类和对象
类定义
Kotlin 类可以包含:构造函数和初始化代码块、函数、属性、内部类、对象声明。
Kotlin 中使用关键字 class 声明类,后面紧跟类名:
class User {
// 大括号内是类体构成
}
ps: 这个和 java 没有区别。
定义空类
class Empty
定义成语函数
可以在类中定义成员函数:
class User {
fun ...
2020-05-02 08:28:32 |
Kotlin