Kotlin
文章平均质量分 80
chenrenxiang
缓慢进步
展开
-
Kotlin学习之起始篇—习惯用法
收集了一些常见的Kotlin用法1. 创建数据类data class Customer(val name: String, val email: String)通常我们会创建一些只用来保存数据的类,比如获取服务器传来的JSON数据后,将它转换保存为一个对应的数据实体。这样的数据实体类在Kotlin中可称为data类,并用data关键字来标注它,如上。data类的...原创 2018-06-05 16:43:13 · 446 阅读 · 0 评论 -
Kotlin学习之类与对象篇—嵌套类和内部类
嵌套类kotlin嵌套类声明如下:class Outer { ... .. ... class Nested { ... .. ... }}嵌套类相当于外部类的一个成员,所以Outer可以用.符号来调用其嵌套类Nested以及Nested类里面的成员。一个嵌套类例子:class Person{ class Student...原创 2018-08-08 14:52:24 · 1172 阅读 · 0 评论 -
Kotlin学习之类与对象篇—委托属性
定义委托属性class Example { var p: String by Delegate()}委托属性的定义语法是:val/var <属性名>: <类型> by <表达式>。by 后面的表达式就是委托, 属性的get()/set()将被委托给它的getValue()和setValue()方法。属性委托不必实现任何接口,但是它们必须提供...原创 2018-08-15 14:26:53 · 230 阅读 · 0 评论 -
Kotlin学习之类与对象篇—密封类
密封类(Sealed Classes)用来表示受限的类继承结构:当一个值的类型只能取自一个有限类型集合中的类型时。在某种程度上,密封类是枚举类的扩展:枚举类型的取值也是受限的,但是每个枚举常量只能有一个实例,而密封类的子类可以有多个实例并且可以包含状态。声明一个密封类,要把sealed修饰符放在类名的前面。密封类可以有子类,但是子类必须声明在和密封类相同的文件中。sealed class ...原创 2018-08-07 10:00:08 · 500 阅读 · 0 评论 -
Kotlin学习之类与对象篇—对象
有时候我们需要创建与某个类稍微不一样的一个对象,但不用为此显示地声明一个子类。Java使用匿名内部类来处理这种情况,Kotlin用对象表达式和对象声明略微概括了这个概念。对象表达式创建一个继承自某个(或某些)类型的匿名类对象:window.addMouseListener(object : MouseAdapter(){ override fun mouseClicked(...原创 2018-08-10 10:39:17 · 255 阅读 · 0 评论 -
Kotlin学习之类与对象篇—枚举类
枚举类的基本用法是实现类型安全枚举:enum class Direction { NORTH, SOUTH, WEST, EAST}每个枚举常量都是一个对象,枚举常量用逗号隔开。 初始化由于每个枚举都是枚举类的一个实例,他们能初始化如下:enum class Color(val rgb: Int) { RED(0xFF0000), ...原创 2018-08-09 10:40:08 · 273 阅读 · 0 评论 -
Kotlin学习之类与对象篇—接口
Kotlin中的接口和Java 8很相似。他们可以有抽象方法,也可以有实现的方法。接口和抽象类不同之处在于接口无法存储状态。接口可以有属性,但是属性必须为抽象的或者提供访问实现。接口使用关键字interface来定义interface MyInterface { fun bar() fun foo() { // optional body }}...原创 2018-07-05 17:18:33 · 170 阅读 · 0 评论 -
Kotlin学习之类与对象篇—属性与字段
属性的声明Kotlin类中可以有属性,属性可以被声明为可变属性,用var关键字修饰;或者声明为只读属性,用val修饰。class Address { var name: String = ... var street: String = ... var city: String = ... var state: String? = ... var...原创 2018-07-04 17:17:57 · 699 阅读 · 2 评论 -
Kotlin学习之类与对象篇—数据类
我们会经常创建一些只用来保存数据的类。在这种类中一些标准功能和效用的函数通常可以根据数据机械地推导出来。在Kotlin中,它被称作数据类,并被标记为data:data class User(val name: String, val age: Int)编译器会根据主构造函数中所声明的所有属性自动推导出下列成员:equls() / hashcode() 对打印"User(name=J...原创 2018-07-10 17:10:52 · 572 阅读 · 0 评论 -
Kotlin学习之类与对象篇—扩展(Extensions)
Kotlin与C#和Gosu类似,都提供让类扩展新功能的能力,并且不用继承类或使用设计模式,比如装饰者模式。该功能通过扩展(extensions)来实现。Kotlin支持扩展方法(extension functions)和扩展属性(extension properties)。扩展方法要声明一个扩展方法,需要在其名称前添加一个接收者类型,也就是被扩展的类型。下面的代码给MutableLi...原创 2018-07-10 15:06:00 · 760 阅读 · 0 评论 -
Kotlin学习之类与对象篇—类及继承
一. 类Kotlin中的类用class关键字声明:class Invoice{}类的声明包含类的名称、类头部(包括类的类型参数,主构造函数等)以及用大括号包围的类体。类头和类体都是可选项;如果类没有类体,大括号也可以省略。class Empty主构造函数一个Kotlin类可以有一个主构造函数和一个或多个次构造函数。主构造函数是类头部的一部分,通常跟在类...原创 2018-07-03 15:44:47 · 432 阅读 · 0 评论 -
Kotlin学习之基础篇—导包和流程控制
一. 导包Kotlin的导包和Java区别不大。1. 默认包Kotlin中有一些包是默认被导入所有Kotlin文件中的: - kotlin.* - kotlin.annotation.* - kotlin.collections.* - kotlin.comparisons.* - kotlin.io.* - kotlin.ranges.* - kotlin.sequ...原创 2018-06-27 16:26:28 · 749 阅读 · 0 评论 -
Kotlin学习之类与对象篇—可见性修饰符
类,object,接口,构造函数,方法,属性以及他们的setters都拥有可见性修饰符(属性的getters拥有和属性相同的可见性)。Kotlin中有四种可见性修饰符:private, protected, internal 和 pulibc。包方法、属性、类、object 和 接口能在顶层中声明,即直接声明在包中。 package foofun baz() {}class ...原创 2018-07-09 15:31:15 · 286 阅读 · 0 评论 -
Kotlin学习之基础篇—基本数据类型
说明写在前面:Kotlin的起始篇其实还有一篇讲Kotlin的编码规范,实在太长我就不翻译了,其实规范大多和Java编码规范类似,当然也有不一样的地方。如果想了解不妨看 Kotlin编码规范-官方文档 。或者看中文版 Kotlin编码规范-kotlin中文站文档 。Kotlin中,一切皆对象,从这个意义上来说,可以调用任何成员变量的方法和属性。有些数据类型具有特殊的内部表示,例如:...原创 2018-06-08 17:27:24 · 265 阅读 · 0 评论 -
Kotlin学习之起始篇—基础语法
Kotlin学习之起始篇—基础语法 Kotlin被Android接纳为官方语言已经一年多了,现在才开始学习,实在惭愧。希望能一点点进步,到最后能完全用Kotlin开发app。废话就不多说了。Let’s get started!1. 定义包package my.demoimport java.util.*// ...包名要放在源文件的开头位置,好像和Java没什么区...原创 2018-06-01 11:30:26 · 418 阅读 · 1 评论 -
Kotlin学习之类与对象篇—委托
委托属性委托属性将单独作为一章讲解,这里先不提委托实现interface Base { fun print()}class BaseImpl(val x: Int) : Base { override fun print() { println(x) }}class Derived(b: Base) : Base by bfun main(arg...原创 2018-08-13 09:51:19 · 221 阅读 · 0 评论