一周入门Kotlin(一)
来源:互联网 发布:工艺优化的条件 编辑:程序博客网 时间:2024/06/02 07:21
Kotlin是最近IO大会推荐的一级语言,也是我们学习的主流方向,其语法实际上不难,融合了很多优秀语言的特性,如面向过程C语言思想。OC语言的代理和类扩展思想。lambda表达式的精简等等。接下来你会想如何学习这个东西又不浪费时间呢。本教程以Java语言的思维进行转换学习,一周带你入门Kotlin。
搭建环境
这里我使用的是mac环境,但是我想应该没多大问题,首先该语言是Android studio3.0全面支持的,其下载地址是Android Studio预览版。如果在2.3的工具中使用如下教程。
Kotlin的技术地址做了大量的介绍,你可以在官网查看技术的实现.
- 创建新的应用成功
- 找到android studio 的action工具
- 将java工程自动转换成kotlin工程
- 转换后的结果如下
类的使用
声明一个简单类
1.创建kotlin文件,如果创建 你会发现该文件的后缀是kt
2.现在我们创建一个Person类,代码如下
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
创建一个子类
现在,我们接着创建一个学生类 该类是Person的子类。这里有一点要主要的,默认如果一个类被别的类继承,那么他必须添加open关键字
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
Student类的创建如下,如果你创建了Person类,系统会为你默认创建一个空参构造器:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
构造器创建
在Kotlin中,构造器分为2种,一种是主构造器,一种是次构造器。主构造器是在类创建的时候顺便指定的,比如我们想在Student类创建的时候指定名称和课程数,那么类的创建如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
那么问题来了,如果你想在一个类中创建多个次构造器,可以这么写:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
方法的创建
学生应该有学习行为,这里没有方法的说法 我们称为函数。所以我们可以为学生创建一系列的方法:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
setter/getter方法
默认情况下属性会自动生成setter/getter方法 这类似于OC的做法。但是我们也可以重写这两个方法,只需要在属性后面声明即可,而field指向的就是该属性,因为kotlin不运行直接方法该对象。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
类静态变量
一般在java语言中如果使用静态变量,必须使用static关键字,如果想初始化静态代码块,可以使用static{ }.kotlin提供了类型的功能,比如我们想在Student中创建3个课程的常量,可以这么写:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
对象的使用
对象的创建
还记得上面我们创建的构造器吗?
- 1
- 2
- 3
- 1
- 2
- 3
创建的代码可以如下,var代表声明一个变量:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
调用setter/getter方法
安卓大部分setter/getter方法都可以
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
扩展类的功能
有时候 你使用的第三方库 或者官方的代码用的不爽 如果是java语言的话你可以使用包装类来添加功能,但是kotlin还提供了类似OC的一个功能如下:
operator fun ViewGroup.get(index: Int): View = getChildAt(index)
对,operator操作符就是扩展方法的操作符,该句代码放在某个文件中即可。这里我们扩展的ViewGroup类,为他添加一个get方法。
Kotlin Android Extensions
Android Extensions是有Kotlin官方提供的一个可以帮助我们在代码区获取控件并处理的工具,其网址:Kotlin Android Extensions
在build.gradle 文件的最上面添加:
- 1
- 1
在代码类中添加
- 1
- 1
如果在布局中有个控件
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
在onCreate()方法中,可以这样调用:
- 1
- 1
- 一周入门Kotlin(一)
- 一周入门Kotlin(一)
- 一周入门Kotlin(二)
- 一周入门Kotlin(三)
- 一周入门Kotlin(四)
- 一周入门Kotlin(五)
- kotlin入门学习(一)
- kotlin入门(一)helloworld
- Kotlin Android入门学习一
- Kotlin开发Android入门(一)
- Kotlin基础入门(一)
- Kotlin Reference(一)-入门指南
- Kotlin入门____基础语法(一)
- Android kotlin入门与基础语法一
- Kotlin从入门到“放弃”(一)
- Kotlin 从入门到实战(一)
- Android中Kotlin简单入门(一)
- Kotlin系统入门与进阶(一)
- ROS_Node
- 51Nod-1012 最小公倍数LCM【欧几里得算法】
- 自然语言处理怎么最快入门
- Android中的信息输出:System.out和Log的源码分析与对比(System.out篇)
- POJ 1625 Censored! 笔记
- 一周入门Kotlin(一)
- cmake中查找并使用其他程序库
- android布局
- POJ 1626 Chapayev 笔记
- Android平台美颜相机/Camera实时滤镜/视频编解码/影像后期/人脸技术探索——4.1高仿FaceU长按录像按钮
- npm不是内部命令在 win10下的解决办法
- SDL实现简单h264文件的播放
- HTML学习笔记
- cmake设定可执行文件的输出目录