Kotlin关键字
前言:
这个文章主要是归集一下kotlin中的关键字,当然也会慢慢的逐一介绍和解释每一个关键字的作用和在JAVA中对应功能。文章不一定能够一次把所有的关键字都归集到一起,但是后期会发现一个更新一次,争取能够在博主能力范围内尽可能最多的归集这些关键字。也希望大家在阅读文章的时候发现没有的在下方留言,博主会及时的对所留关键字进行学习和总结,希望大家多多指点。
以下关键字不管简单的难的都有,博主目的也是让自己对kotlin中的关键字全部做一个归集,过于简单的或者和JAVA中用法等一致的也会一笔带过。对于别人已经描述的很清楚的关键字,我会贴出链接,不在重新造轮子了。
关键字:
修饰类:
1. object
Object关键字
作为类它可以继承另一个类,实现接口,有成员属性和成员函数;
作为实例它可以声明为一个类型,不能有构造函数,引用时直接使用名称,多次访问返回同一结果。
2. companion
3. constructor
构造函数。具体点击进去看大神详解。
4. data
5. sealed(密封类)
sealed class SealedClassName(){
data class DataClassName(val name: String, var age: Int): SealedClassName(){}
object class ObjectClassName(): SealedClassName{}
}
//不用在写else语句
fun isString(scn: SealedClassName) = when(str){
is DataClassName -> "这是DataClassName对象"
is ObjectClassName -> "这是ObjectClassName对象"
}
6. inner
内部类构建关键字,在kotlin中嵌套类不是内部类,内部类要用inner关键字修饰。
7. enum
定义枚举常量枚举类,官网介绍
8. reified
修饰属性:
1. const
这个关键字其实和val有着相似的功能,但是他修饰的属性才是正真意义上JAVA中static final修饰的常量,关键字只能用在object修饰的类内和companion object{}伴生对象内或者文件的顶层(也就是和类同意级别的,调用则是用文件名调用,具体后续简介)。
2. by
by关键字就是kotlin中特有的,一般用在委托属性(后续会单独介绍委托属性)的时候。
3. val
不可变属性,对应JAVA中被final修饰过的属性,标志着只能被一次赋值,但是该属性也不是完全不可变,可以被继承后改变,具体后续文章会介绍,这里只要知道一个概念。
4. var
可变属性
5. vararg(可变参数)
修饰方法:
通用关键字:
1. open
kotlin中所有文件默认是final的,也就是说默认kotlin中的类, 属性,方法都是不继承的。要想实现继承我们需要在对应的类, 属性, 方法前面加上open关键字,标识着这个类, 属性, 方法是可以被继承的,注意kotlin中interface(接口)修饰的类和abstract(抽象)修饰的类,属性,方法和override修饰的方法和属性默认是open。
2. final
kotlin中所有文件默认是final的, 该关键字用法和JAVA一样。
3. private
只在该类(以及它的成员)中可见, JAVA中用法一致。
4. internal (对应JAVA中的所有类,属性,方法的默认default)
在本模块的所有可以访问到声明区域的均可以访问该类的所有internal成员。
模块在 Kotlin 中就是一系列的 Kotlin 文件编译在一起:
— an IntelliJ IDEA module; (一个module)
— a Maven or Gradle project;.(一个gradle里面的依赖jar包(maven))
— a set of files compiled with one invocation of the Ant task.(通过一次调用Ant任务编译的一组文件)
5. protected
一样但在子类中也可见, JAVA中用法一致。
6. public
任何地方可见, JAVA中用法一致,值得注意的是ktlin中所有的类,属性,方法默认都是public的。