1.下面是AndroidStudio的配置 java
1.1 在Project对应的build.gradle文件中添加以下代码:android
ext.kotlin_version = '1.1.2-4' //kotlin版本号编程
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 数组
1.2 在module对应的build.gradle文件 中添加代码::app
添加插件 apply plugin: 'kotlin-android' 编程语言
添加依赖库 compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"ide
从新build project就能够使用kotlin了。函数
2.下面说下kotlin的基本语法(借鉴了Kotlin的官网文档)工具
基本类型Basic Types学习
2.1 Number类型
定义变量
val a: Int = 10000
val boxedA: Int? = a
val b: Byte = 1
每一个Number类型的变量支持以下方法进行转换
如:val i: Int = b.toInt()
2.2 Operations
如 val x = (1 shl 2) and 0x000FF000
2.3 Characters
字符型 定义如:val c: Char = 'C'
2.4 Booleans
布尔类型 定义如:val b: Boolean = false;
2.5 Arrays
数组类型 定义如:val x: IntArray = intArrayOf(1, 2, 3)
2.6 Strings
字符串类型 定义如:val s = "Hello, world"
3.基本语法
3.1 if语句
3.2 when语句(替代了java里的switch)
3.3 for循环语句
循环遍历集合collection里面的数据 并输出
3.4 while 和 do...while语句和java相似
4. 方法的定义
格式如:fun 方法名(参数名 :参数类型):返回值类型{
}
好比:
咱们还能够给参数设置默认值 如:
fun read(b: Array<Byte>, off: Int = 0, len: Int = b.size()) { ... }
5. 类的定义
格式如:class 类名{
}
在Kotlin中,一个类有一个primary constructor,一个或多个secondary constructors。primary constructor 属于类头部分,它在类名以后。
若是primary constructor没有任何注解或者指示符,constructor关键字能够被省略。
相反,若是primary constructory有注解或者可见的指示符,constructor是必须的。
primary constructor不能包含任何的代码,初始代码能够放在初始块中,初始化代码块以init关键字开头。
须要注意的是,在主构造函数里,能够直接用这些参数变量赋值给类的属性,或者用构造代码块来实现初始化。
Secondary Constructors
除了primary constructory,还有secondary constructors,一样也是constructor开头,位于类体中。
值得说明的是,若是primary constructory和secondary constructors同时存在,每一个secondary constructor须要委托到primary constructor中去,或者间接经过另外一个secondary constructors来委托。使用方法就是使用 this,表示委托到本类的另外一个构造函数中。
若是非抽象的类没有声明任何的构造函数,它默认继承一个没有任何参数的公有构造器,这个跟Java中的默认构造器相似。若是但愿它继承的是一个私有的构造器,就须要显示的指明。
建立类的对象实例咱们能够这么实现
val invoice = Invoice()
val customer = Customer("帅气的码农")
6. 类的继承
用“:”冒号实现类的继承
定义一个父类 Person
open class Person(age: Int) //open关键字跟Java中的final是相反
子类继承
class Child(age: Int) : Person(age)
若是父类没有primary constructor,子类的每一个secondary constructor在右边使用super来对它进行初始化。
class Child : Person {
constructor(ctx: Context) : super(ctx) { }
constructor(ctx: Context, attrs: AttributeSet) : super(ctx, attrs) { }
}
7. 方法重写
重写成员函数
对于能够重写的函数,都须要显示的指明,使用的是open关键字。若是没有,在子类中声明跟父类相同的方法是非法的。
open class Person {
open fun v() {}
fun v() {}
}
class Child() : Base() {
override fun v() {}
}
在子类中被标记为override的成员函数自己也是能够被从新的,也就是open的,若是但愿它禁止被重写,须要使用final关键字。
重写规则
若是一个类继承自多个类,而且它的这些父类都有同一个能够重写的函数,那么这个类必须重写这个函数而且提供它本身的实现,另外在子类中指示父类的方法是super<A>
,A为父类类名,这样就能够指示不一样的父类 了。
8. 抽象类
抽象类
跟Java同样,使用abstract关键字。
9. Companion Objects
Kotlin 移除了 static 的概念。一般用 companion object 来实现相似功能。
咱们在 Activity 定义一个静态类型的 string,名叫TAG,和一个启动 Activity 的静态方法:
咱们用kotlin能够这么写:
好了 今天先介绍这么多 kotlin还有不少关键字和语法操做符没有介绍到,后续更新!!!