主要内容:使用枚举常量枚举类最基本的用法是实现一个类型安全的枚举。 枚举常量用逗号分隔,每个枚举常量都是一个对象。 枚举初始化 每一个枚举都是枚举类的实例,它们可以被初始化: 默认名称为枚举字符名,值从0开始。若需要指定值,则可以使用其构造函数: 枚举还支持以声明自己的匿名类及相应的方法、以及覆盖基类的方法。如: 如果枚举类定义任何成员,要使用分号将成员定义中的枚举常量定义分隔开 使用枚举常量 Kotlin 中的枚举类
主要内容:泛型约束,型变,星号投射泛型,即 "参数化类型",将类型参数化,可以用在类,接口,方法上。 与 Java 一样,Kotlin 也提供泛型,为类型安全提供保证,消除类型强转的烦恼。 声明一个泛型类: 创建类的实例时我们需要指定类型参数: 以下实例向泛型类 Box 传入整型数据和字符串: 输出结果为: 定义泛型类型变量,可以完整地写明类型参数,如果编译器可以自动推定类型参数,也可以省略类型参数。 Kotlin 泛型函数的声明
主要内容:数据类,密封类数据类 Kotlin 可以创建一个只包含数据的类,关键字为 data: 编译器会自动的从主构造函数中根据所有声明的属性提取以下函数: / 格式如 对应于属性,按声明顺序排列 函数 如果这些函数在类中已经被明确定义了,或者从超类中继承而来,就不再会生成。 为了保证生成代码的一致性以及有意义,数据类需要满足以下条件: 主构造函数至少包含一个参数。 所有的主构造函数的参数必须标识为 或者 ; 数据类不可
主要内容:扩展函数,扩展函数是静态解析的,伴生对象的扩展,扩展的作用域,扩展声明为成员Kotlin 可以对一个类的属性和方法进行扩展,且不需要继承或使用 Decorator 模式。 扩展是一种静态行为,对被扩展的类代码本身不会造成任何影响。 扩展函数 扩展函数可以在已有类中添加新的方法,不会对原类做修改,扩展函数定义形式: receiverType:表示函数的接收者,也就是函数扩展的对象 functionName:扩展函数的名称 params:扩展函数的参数,可以为NULL 以下实
主要内容:实例,实例,函数重写,实例Kotlin 接口与 Java 8 类似,使用 interface 关键字定义接口,允许方法有默认实现: interface MyInterface { fun bar() // 未实现 fun foo() { //已实现 // 可选的方法体 println("foo") } } 实现接口 一个类或者对象可以实现一个或多个接口。 class Child : MyInterface { overri
主要内容:构造函数,重写,属性重写Kotlin 中所有类都继承该 Any 类,它是所有类的超类,对于没有超类型声明的类是默认超类: Any 默认提供了三个函数: 注意:Any 不是 java.lang.Object。 如果一个类要被继承,可以使用 open 关键字进行修饰。 构造函数 子类有主构造函数 如果子类有主构造函数, 则基类必须在主构造函数中立即初始化。 输出结果: 子类没有主构造函数 如果子类没有主构造函数,则必须在每一
主要内容:类定义,类的属性,主构造器,次构造函数,抽象类,嵌套类,内部类,匿名内部类,类的修饰符类定义 Kotlin 类可以包含:构造函数和初始化代码块、函数、属性、内部类、对象声明。 Kotlin 中使用关键字 class 声明类,后面紧跟类名: 我们也可以定义一个空类: 可以在类中定义成员函数: 类的属性 属性定义 类的属性可以用关键字 var 声明为可变的,否则使用只读关键字 val 声明为不可变。 我们可以像使用普通函数那样使用构造函数创建类实例: 要使用一个属性,只要用名称引用它即
主要内容:For 循环,while 与 do...while 循环,返回和跳转For 循环 for 循环可以对任何提供迭代器(iterator)的对象进行遍历,语法如下: 循环体可以是一个代码块: 如上所述,for 可以循环遍历任何提供了迭代器的对象。 如果你想要通过索引遍历一个数组或者一个 list,你可以这么做: 注意这种"在区间上遍历"会编译成优化的实现而不会创建额外对象。 或者你可以用库函数 withIndex: 实例 对集合进行迭代: 输出结果: while 与
主要内容:IF 表达式,When 表达式IF 表达式 一个 if 语句包含一个布尔表达式和一条或多条语句。 我们也可以把 IF 表达式的结果赋值给一个变量。 这也说明我也不需要像Java那种有一个三元操作符,因为我们可以使用它来简单实现: 实例 输出结果为: 使用区间 使用 in 运算符来检测某个数字是否在指定区间内,区间格式为 x..y : 实例 输出结果为: When 表达式 when 将它的参数和所有的分支条件顺序比较,直到某个分
主要内容:字面常量,比较两个数字,类型转换,位操作符,字符,布尔,数组,字符串,字符串模板Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等。不同于 Java 的是,字符不属于数值类型,是一个独立的数据类型。 类型 位宽度 Double 64 Float 32 Long 64 Int 32 Short 16 Byte 8 字面常量 下面是所有类型的字面常量: 十进制:123 长整型以大写的 L 结尾:123L 16 进制以 0x 开头
主要内容:包声明,函数定义,定义常量与变量,注释,字符串模板,NULL检查机制,类型检测及自动类型转换,区间Kotlin 文件以 .kt 为后缀。 包声明 代码文件的开头一般为包的声明: kotlin源文件不需要相匹配的目录和包,源文件可以放在任何文件目录。 以上例中 test() 的全名是 com.runoob.main.test、Runoob 的全名是 com.runoob.main.Runoob。 如果没有指定包,默认为 default 包。 默认导入 有多个包会默认导入到每个 Kotli
主要内容:安装 Kotlin 插件,创建新工程,将 Java 代码转换为 Kotlin安装 Kotlin 插件 Android Studio 从 3.0(preview)版本开始将内置安装 Kotlin 插件。 打开 Settings ( Mac 为 Preferences) 面板,在右侧找到 Plugins 选项 (快捷键 Ctrl+, Mac 下为 command+),搜索框输入 "Kotlin" 查找,点击 Search in repositories(仓库中搜索),然后安装
主要内容:SDKMAN!,创建和运行第一个程序,hello.kt,运行 REPL(交互式解释器),使用命令行执行脚本Kotlin 命令行编译工具下载地址:https://github.com/JetBrains/kotlin/releases/tag/v1.1.2-2,目前最新为 1.1.2-2。 你可以选择一个最新的稳定版下载。 下载完成后,解压到指定目录,然后将 bin 目录添加到系统环境变量。bin 目录包含编译和运行 Kotlin 所需的脚本。 SDKMAN! 在 OS X、Linux、
Eclipse 通过 Marketplace 安装 Kotlin 插件,打开 Eclipse,选择 Help -> Eclipse Marketplace… 菜单,搜索 Kotlin 插件: 然后重启 Eclipse 选择 Window -> Open Perspective -> Other...,如果看到了 Kotlin 选项表明安装成功。 创建新项目 选择 File -> New -> Ko
IntelliJ IDEA 免费的社区版下载地址:https://www.jetbrains.com/idea/download/index.html 下载安装后,我们就可以使用该工具来创建项目,创建过程需要选择 SDK, Kotlin 与 JDK 1.6+ 一起使用。 在右侧的下拉菜单中勾选 Kotlin (Java) 复选框。 接下来我们取一个项目名:HelloWorld 项目创建完后,文件结