Kotlin 基本数据类型
Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等。不同于 Java 的是,字符不属于数值类型,是一个独立的数据类型。
类型
位宽度
Double
64
Float
32
Long
64
Int
32
Short
16
Byte
8
字面常量
下面是所有类型的字面常量:
十进制:123
长整……继续阅读 »
2年前 (2022-07-23) 470浏览 0评论
0个赞
Kotlin 类和对象
类定义
Kotlin 类可以包含:构造函数和初始化代码块、函数、属性、内部类、对象声明。
Kotlin 中使用关键字 class 声明类,后面紧跟类名:
class Runoob { // 类名为 Runoob
// 大括号内是类体构成
}
我们也可以定义一个空类:
class Empty
可以在类中定义成员函数:
class Runoob() {
fun foo(……继续阅读 »
2年前 (2022-07-21) 71浏览 0评论
0个赞
Kotlin 扩展
Kotlin 可以对一个类的属性和方法进行扩展,且不需要继承或使用 Decorator 模式。
扩展是一种静态行为,对被扩展的类代码本身不会造成任何影响。
扩展函数
扩展函数可以在已有类中添加新的方法,不会对原类做修改,扩展函数定义形式:
fun receiverType.functionName(params){
body
}
receiverType:表示函数……继续阅读 »
2年前 (2022-07-20) 182浏览 0评论
0个赞
Kotlin 使用命令行编译
Kotlin 命令行编译工具下载地址:https://github.com/JetBrains/kotlin/releases/tag/v1.1.2-2,目前最新为 1.1.2-2。
你可以选择一个最新的稳定版下载。
下载完成后,解压到指定目录,然后将 bin 目录添加到系统环境变量。bin 目录包含编译和运行 Kotlin 所需的脚本。
SDKMAN!
在 OS X、Linux、C……继续阅读 »
2年前 (2022-07-19) 115浏览 0评论
0个赞
kotlin 委托
委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。
Kotlin 直接支持委托模式,更加优雅,简洁。Kotlin 通过关键字 by 实现委托。
类委托
类的委托即一个类中定义的方法实际是调用另一个类的对象的方法来实现的。
以下实例中派生类 Derived 继承了接口 Base 所有方法,并且委托一个传入的 Base 类……继续阅读 »
2年前 (2022-07-17) 144浏览 0评论
0个赞
Kotlin Eclipse 环境搭建
Eclipse 通过 Marketplace 安装 Kotlin 插件,打开 Eclipse,选择 Help -> Eclipse Marketplace… 菜单,搜索 Kotlin 插件:
然后重启 Eclipse 选择 Window -> Open Perspective -> Other…,如果看到了 Kotlin 选项表明安装成功。
……继续阅读 »
2年前 (2022-07-16) 140浏览 0评论
0个赞
Kotlin 对象表达式和对象声明
Kotlin 用对象表达式和对象声明来实现创建一个对某个类做了轻微改动的类的对象,且不需要去声明一个新的子类。
对象表达式
通过对象表达式实现一个匿名内部类的对象用于方法的参数中:
window.addMouseListener(object : MouseAdapter() {
override fun mouseClicked(e: MouseEvent) {
……继续阅读 »
2年前 (2022-06-30) 222浏览 0评论
0个赞
Kotlin 循环控制
For 循环
for 循环可以对任何提供迭代器(iterator)的对象进行遍历,语法如下:
for (item in collection) print(item)
循环体可以是一个代码块:
for (item: Int in ints) {
// ……
}
如上所述,for 可以循环遍历任何提供了迭代器的对象。
如果你想要通过索引遍历一个数组或……继续阅读 »
2年前 (2022-06-30) 150浏览 0评论
0个赞
Kotlin 条件控制
IF 表达式
一个 if 语句包含一个布尔表达式和一条或多条语句。
// 传统用法
var max = a
if (a < b) max = b
// 使用 else
var max: Int
if (a > b) {
max = a
} else {
max = b
}
// 作为表达式
val max = if (a > b) a else b……继续阅读 »
2年前 (2022-06-27) 96浏览 0评论
0个赞
Kotlin 基础语法
Kotlin 文件以 .kt 为后缀。
包声明
代码文件的开头一般为包的声明:
package com.runoob.main
import java.util.*
fun test() {}
class Runoob {}
kotlin源文件不需要相匹配的目录和包,源文件可以放在任何文件目录。
以上例中 test() 的全名是 com.runoob.main.test、Runoob ……继续阅读 »
2年前 (2022-06-19) 73浏览 0评论
0个赞
Kotlin IntelliJ IDEA环境搭建
IntelliJ IDEA 免费的社区版下载地址:https://www.jetbrains.com/idea/download/index.html
下载安装后,我们就可以使用该工具来创建项目,创建过程需要选择 SDK, Kotlin 与 JDK 1.6+ 一起使用。
在右侧的下拉菜单中勾选 Kotlin (Java) 复选框。
接下来我们取一个项目名:He……继续阅读 »
2年前 (2022-06-19) 260浏览 0评论
0个赞
Kotlin Android 环境搭建
安装 Kotlin 插件
Android Studio 从 3.0(preview)版本开始将内置安装 Kotlin 插件。
打开 Settings ( Mac 为 Preferences) 面板,在右侧找到 Plugins 选项 (快捷键 Ctrl+, Mac 下为 command+),搜索框输入 “Kotlin” 查找,点击 Search in re……继续阅读 »
2年前 (2022-06-16) 73浏览 0评论
0个赞
Kotlin 教程
Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。
Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。
在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。
我的第一个 ……继续阅读 »
2年前 (2022-06-15) 72浏览 0评论
0个赞
Kotlin 数据类与密封类
数据类
Kotlin 可以创建一个只包含数据的类,关键字为 data:
data class User(val name: String, val age: Int)
编译器会自动的从主构造函数中根据所有声明的属性提取以下函数:
equals() / hashCode()
toString() 格式如 "User(name=John, age=42)"
compone……继续阅读 »
2年前 (2022-06-13) 307浏览 0评论
0个赞
Kotlin 继承
Kotlin 中所有类都继承该 Any 类,它是所有类的超类,对于没有超类型声明的类是默认超类:
class Example // 从 Any 隐式继承
Any 默认提供了三个函数:
equals()
hashCode()
toString()
注意:Any 不是 java.lang.Object。
如果一个类要被继承,可以使用 open 关键字进行修饰。
open class Ba……继续阅读 »
2年前 (2022-06-12) 133浏览 0评论
0个赞
Kotlin 接口
Kotlin 接口与 Java 8 类似,使用 interface 关键字定义接口,允许方法有默认实现:
interface MyInterface {
fun bar() // 未实现
fun foo() { //已实现
// 可选的方法体
println("foo")
}
}
实现接口
一个类或者对象可以实现一个或多个……继续阅读 »
2年前 (2022-05-31) 381浏览 0评论
0个赞
Kotlin 泛型
泛型,即 “参数化类型”,将类型参数化,可以用在类,接口,方法上。
与 Java 一样,Kotlin 也提供泛型,为类型安全提供保证,消除类型强转的烦恼。
声明一个泛型类:
class Box<T>(t: T) {
var value = t
}
创建类的实例时我们需要指定类型参数:
val box: Box<Int> = Box<……继续阅读 »
2年前 (2022-05-30) 315浏览 0评论
0个赞
Kotlin 枚举类
枚举类最基本的用法是实现一个类型安全的枚举。
枚举常量用逗号分隔,每个枚举常量都是一个对象。
enum class Color{
RED,BLACK,BLUE,GREEN,WHITE
}
枚举初始化
每一个枚举都是枚举类的实例,它们可以被初始化:
enum class Color(val rgb: Int) {
RED(0xFF00……继续阅读 »
2年前 (2022-05-27) 249浏览 0评论
0个赞