java 转 Kotlin 快速入门①
java 转 Kotlin 快速入门①
本为参考kotlin文档,先感谢kotlin语言开发者、kotlin文档编写者、kotlin文档中文翻译者等:
新入手,如有错误烦请指出,谢谢!
- AS新建Android工程使用Kotlin
- 导包
- 作用域
- 函数定义
- 感谢
AS新建Android工程使用Kotlin
使用新版AS是可以直接使用kotlin开发Android项目的。如下新建一个项目
可以看到新版的AS有一个“Include Kotlin support”的勾选,就是让我们去引入kotlin的相关支持的配置。后面的步骤基本和原来的一致。
从生成的Activity文件可以看出,文件后缀是.kt的,这个是符合kotlin语言,因为和原谷歌Android的sdk是兼容的,所以导入的包名基本一致。下面一点点看过去
导包
- 包名不等同于文件夹名称
- 包名不支持静态导入
- 导入的包名可以使用关键字“as”给它取别名 //这点和python一样。
- 如果没有声明包名,则使用默认的 default 包
import android.os.Bundle
import android.support.v7.app.AppCompatActivity as ACA //取个别名
class MainActivity : ACA() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
注:在AndroidManifest.xml中引用的class,都看包名,不看文件夹层次。
关键词解释:
模块 : 可以理解为当前这个文件
类 : 和java的类差不多,只是一个模块中可以有多个类(无论是否是public)
函数 : 也叫做“方法”,可以直接写在模块中,可以不写在类中的
作用域:
- private 声明的成员 只在这个类中可见(包括它的所有成员);
- protected 和private一样,只能在子类使用,不能声明在顶部;
- internal 在这个模块中开放,及它的内部成员;
- public 对所有模块开放,调用该成员需要导入对应包,什么都不写就默认是public。
基本和Java写法类似,只是多了个internal,相当于用在顶部的protected。
解释看不懂就看下面一段代码就明白了,红色下划线的表示错误的。
编译器帮我们检查出来了错误。
通常把最外面一层称做顶部,然后就是类中,再就是方法体中。
顶部除了protected,其他都可以用;
类中就全部可以使用;
方法体中是不需要声明作用域的这点和Java写法一样。
看到public是灰色的,表示默认就是public的,就是说如果你忘了写类似的作用域,它就自动给你一个public,这点和Java不一样,要注意。(所以MainActivity的class前面没有写public)
关键符号 : 解释:
使用 “ :”冒号 表示所属的意思,
- 比如 “ fun 某函数():类型 ” ,就表示这个函数的返回值是这个类型;
- 在函数列表中如果是变量的话 “ a:Int ” 就表示这个参数a是需要整型的;
- 如果是类的话,例如 “A类:B类”,就说明A是B的子类。
函数定义
fun 方法名称(参数列表):返回值类型{
//方法体
}
- 函数定义的话需要使用关键字“fun”
- 方法名称和java的要求一样,只能下划线和字母开头
- 参数列表写法 成员名称:类型名称 例如 a:Int
如果函数只有一个表达式,或者内容可以写成一个表达式,则可以将函数写法简单化:
fun 方法名(参数列表):返回类型 = 方法体
如果函数没有返回值,返回值类型可以写成“Unit”
或者省略不写。
另外需要注意kotlin可以函数包函数,就像类里面包函数差不多。
//类中包函数
class Test {
fun test() {//成员函数
}
}
//函数中包函数
fun Test2(){
fun test2(){//局部函数
}
}
感觉函数和类有点分不清了,调用的时候也几乎一样的,调用顶部方法只需要包名打点调用即可。不过需要注意的是类可以打点调用它的成员函数,函数不能打点调用它的局部函数
如果是在Android环境下的话,要覆写一个方法,需要关键字“override”写在fun前面,表示覆盖父类的这个方法。
另外稍微解释一下为什么 Bundle后面带?,意思是 类型后面加?表示这个参数可为空。
感谢:
https://www.gitbook.com/book/huanglizhuo/kotlin-in-chinese/details
http://kotlinlang.org/docs/reference/
上一篇: 用 Python 实现英文单词纠错功能
下一篇: Mybatis小白入门学习笔记(1)
推荐阅读
-
JAVA WEB快速入门之从编写一个基于SpringBoot+Mybatis快速创建的REST API项目了解SpringBoot、SpringMVC REST API、Mybatis等相关知识
-
JAVA WEB快速入门之环境搭建
-
JAVA WEB快速入门之从编写一个基于SpringMVC框架的网站了解Maven、SpringMVC、SpringJDBC
-
Kotlin学习快速入门(2)——条件 数组 循环 方法
-
没有基础的初学者学java怎样快速入门?超全的学习路线图
-
快速入门介绍Java中强大的String.format()
-
Java正则表达式入门[转]
-
Java正则表达式入门[转]
-
Java快速入门_从这六条技能开始 java多线程数据结构
-
java中Map、Set、List的使用(快速入门、简单上手)