写在前面
最近找了git了一个项目,编写一个kotlin demo 项目。代码已经上传到github上。
地址是:https://github.com/muboluo/KotlinKaiyanDemo
原地址是:https://github.com/LRH1993/Eyepetizer-in-Kotlin
喜欢的同学,可以去原地址加星点赞
本系列是我在编写kt程序时的一些感悟,知识有些零散。如果想系统的学习,请参考各大神分享出来的书籍
,文正末尾会列出一个相对系统的参考资料。大家可以点击学习
正文
本篇主要介绍一些常用的操作符和方法,以及一些编写代码过程中的启发
欢迎大家指正拍砖
-
findViewById 不再需要
kotlin 可以导入activity 和fragment 所对应的 布局文件中的控件id列表。 所以我们不再需要findViewById. 设置文件目录后直接引用即可。
-
get方法不再需要
目前我只写了几个页面,其中在使用activity 获取 一些属性的时候, 不再需要使用对应的get方法。 这点是很不错的。节省了很多代码 不过,有些属性还是不能获取,我觉得是因为对应的属性是私有的, 且对外没有提供对应的get方法。所以才不能直接使用。
-
?的使用
使用 ?操作符,表示不为空的情况才才执行该操作。 eg: a?.print("a") 表示 a 如果不为空,则打印出a。 省去了我们的 判空条件。同样节省代码量
-
?. 和 !! 的使用
参数中传递的变量使用 ?. 或者 !! 。这是与方法定义时,定义好的相对应的。 所以我们在定义方法的时候,要想清楚参数的变量是否可以为null. 同样,这也涉及到我们在方法中使用该变量时的是否使用 .let ?. 操作符
-
主构造方法 init{} 和 子构造方法 constructor
同样,kotlin 也是有多种构造方法 主构造方法即我们在定义类时传进去的参数列表,初始化是在 init{}中进行的。 子构造方法使用 constructor 进行初始化。
-
类的属性 :在定义的时候直接赋值,与 init 方法中赋值
我们在定义一个属性的时候,是直接赋值还是在 init方法中赋值, 目前的想法是:init方法中赋值。因为该方法是默认的构造方法。 同时也有利于扩展。
-
var 和 val 的区别
var : 代表可变变量 ,个人理解的是 单词 变量 variable 的缩写 val : 不可变变量, 相当于 final + 类型。
-
const 常量
使用const 修饰的变量,与java中 的 常量一致。 若不加 const。 eg: val str : String = "aa" 如果使用第二种写法,那么我们在其他.java中调用的时候是使用的 .getStr()方法。 而第一种写法是一致的,第一种写法的常量才是我们常用的java写法。
-
内部类
默认的内部类是静态的,不能访问外部的非静态属性和方法。 若希望访问,则在定义时,需要加入 inner 修饰类,即可将静态内部类转为非静态类。 访问方式是 this@外部类名.外部属性名 静态内部类是可以访问外部类的静态成员和方法的。 注意,如果外部类也是静态的,那么内部类是可以访问外部类的属性和方法的。
参考资料:
1 https://blog.csdn.net/u013064109/article/details/78786646
2 https://www.cnblogs.com/tgyf/p/6892551.html?utm_source=itdadao&utm_medium=referral
4 https://www.jianshu.com/p/91fc8305b41a
我觉得最后一篇整理的相对比较系统一些,可以参考这个
[图片上传失败...(image-c95ce8-1542071333909)]
网友评论