
Kotlin学习笔记
文章平均质量分 70
精装机械师
这个作者很懒,什么都没留下…
展开
-
Kotlin 中实现静态方法效果
本文将介绍如何在Kotlin中实现类似于Java中静态方法的效果,编写工具类,让调用看起来更加简洁。原创 2022-02-10 11:28:29 · 2539 阅读 · 0 评论 -
Kotlin学习笔记——this关键字的限定符
一、前言 在面向对象的开发语言中,我们经常遇到的场景就是在一个类(A)的内部类(B)中,需要引用外部类(A)的当前对象,此时,就需要为this关键字添加限定符,以确定所表示的对象。二、场景复现在Java中,this 关键字限定符的使用大家应该都比较熟悉,就是 “外部类类名+点运算符+this” 关键字即可,例如:A.this示例:class ...原创 2020-04-13 15:38:24 · 859 阅读 · 0 评论 -
Java/Kotlin JVM中内部类类名的巨坑
特别说明:因为Java和Kotlin JVM机制类似,所以在本文章中采用Kotlin语言,有兴趣的同学也可以自己使用Java语言重现。前提:在Windows系统下搭建的开发环境(至于为什么指明在Windows系统下,到后面就会知道了)新建一个Kotlin文件,在内部定义简单的两个数据类,和一个主函数入口data class Abc(val name: String)data cl...原创 2020-02-25 17:01:55 · 647 阅读 · 0 评论 -
使用DateFormat格式化时间输出
文章目录1. 前言2. 格式化标准(格式字符标识)3. 使用注意事项3.1 格式字符数量控制显示位数1. 前言&nbps;&nbps;&nbps;&nbps;系统时间,需要通过格式化输出才能展示给用户,根据不同地区用户习惯的不一样,展示的方式也有所差别,但是有一个统一的格式化标准,可以满足各种格式化输出的需求。2. 格式化标准(格式字符标识)格式化标...原创 2019-12-17 12:27:20 · 3766 阅读 · 0 评论 -
Kotlin学习笔记——单例的实现
文章目录前言单例模式单例实现方法前言 在Kotlin中,不像Java有静态变量和静态方法,那么如何实现单例模式呢?在这片文章中将介绍在Kotlin中如何实现单例模式单例模式 单例模式(Singleton Pattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的...原创 2019-11-01 10:56:25 · 982 阅读 · 1 评论 -
Kotlin学习笔记——作用域函数
在kotlin的标准库里,提供了一些目的在于以对象为上下文执行代码块的函数,这些函数叫做作用域函数,你可以在一个对象中使用lambda表达式调用这些函数。作用域函数包括let、run、with、apply、also。示例:val str = "This is a string"str.let { println("This string length is : ${it.lengt...原创 2019-10-23 18:51:30 · 248 阅读 · 0 评论 -
Kotlin学习笔记——for语句中使用区间表达式
文章目录前言区间的几种类型`rangeTo`区间`downTo`区间`until`区间区间遍历的间隔前言在Java中,使用for语句通过索引遍历数组时,可在for语句中定义临时循环变量,并控制变量的范围和递增,如下示例:String [] array = new String [] {"One", "Two", "Three", "Four", "Five"};// 使用索引的方式遍历数组...原创 2019-10-12 17:26:36 · 735 阅读 · 0 评论 -
Kotlin学习笔记——易错点总结
文章目录1 前言2 语法篇2.1 数字类型之间的强制类型转换内容持续更新中........1 前言 刚刚接触Kotlin,会有许多地方需要注意的,特别是本身有Java或者其他开发语言基础的人,更容易掉进这些陷阱。2 语法篇2.1 数字类型之间的强制类型转换 在Kotlin中,数字类型没有基础数字类...原创 2019-09-19 10:43:14 · 934 阅读 · 0 评论 -
Kotlin学习笔记——Android扩展插件之视图绑定
前言在Android中使用Kotlin语言开发,必须在build.gradle中引入Android Kotlin插件(apply plugin: 'kotlin-android')。但是在Android开发中,Kotlin还提供了一些扩展插件,扩展插件有什么作用呢?下面给大家演示一下。在布局文件中编写控件<?xml version="1.0" encoding="utf-8"?>...原创 2019-09-18 11:52:24 · 483 阅读 · 0 评论 -
Kotlin学习笔记——枚举类
枚举类的最基本的用法是实现类型安全的枚举,列出有限的类型;跟Java不同,Kotlin中声明枚举类是使用enum class(Java中是使用enum)enum class Color() { RED, GRENN, BLUE}枚举类的每一个枚举,都是枚举类类型的;Kotlin中,枚举类是可以有成员变量的,而且可以使用构造函数进行初始化;enu...原创 2019-08-07 17:43:18 · 540 阅读 · 0 评论 -
Kotlin学习笔记——Lambda表达式
lambda 表达式与匿名函数是“函数字面值”,即未声明的函数, 但立即做为表达式进行传递。在Java 8中也开始支持Lambda表达式。Lambda表达式语法lambda 表达式由花括号括起来, 包含完整语法形式的参数声明,参数声明有可选的类型标注, 函数体跟在一个 -> 符号之后。如果可以推断出的该lambda表达式的返回类型不是 Unit,那么该 lambda 主体中的最后一个(或...原创 2019-08-19 11:00:11 · 307 阅读 · 0 评论 -
Kotlin学习笔记——函数
函数函数的声明函数的声明使用关键字fun,格式为 [访问限定符] fun 函数名([参数名: 参数类型])[: 返回值类型] {}fun add(x: Int, y: Int): Int { return x + y;}函数的调用普通调用add(1, 2)通过类调用函数通过类的实例调用函数,使用.连接符调用Math().add(1, 2) // 调用Math...原创 2019-08-13 16:25:01 · 280 阅读 · 0 评论 -
Kotlin学习笔记——类继承
在 Kotlin 中所有类都有一个共同的超类Any,声明类时如果不指定超类,都是默认继承自Any注意:Any 和Java的java.lang.Object不同;Any它除了 equals()、hashCode() 与 toString() 外没有任何成员。 更多细节请查阅Java互操作性部分。在Kotlin中,只有open的类才能作为超类,没有显示声明为open的类都是默认为fin...原创 2019-07-08 17:54:34 · 198 阅读 · 0 评论 -
Kotlin学习笔记——属性与字段
在Kotlin中,属性和字段可以使用关键字var(可变属性)和关键字val(不可变、只读属性), var定义的属性默认有getter和setter,val定义的属性只有getter属性。属性的定义定义属性的完整语法如下:var <propertyName>[: <PropertyType>] [= <property_initializer>] ...原创 2019-07-09 14:29:21 · 245 阅读 · 0 评论 -
Kotlin学习笔记——接口
Kotlin 的接口与Java的接口类似,可以声明抽象方法,但是Kotlin不同的是,它还可以包含实现(Java中的接口不能有方法实现)。与抽象类不同的是,接口无法保存状态。Kotlin的接口可以有属性但必须声明为抽象或提供访问器实现。Kotlin可以在接口中定义属性。在接口中声明的属性要么是抽象的,要么提供访问器的实现。在接口中声明的属性不能有幕后字段(backing fi...原创 2019-07-09 18:12:40 · 279 阅读 · 0 评论 -
Kotlin学习笔记——可见性修饰符
在Kotlin中,类、对象、接口、构造函数、方法、属性和它们的setter都可以有 可见性修饰符。 (getter 总是与属性有着相同的可见性。) 在 Kotlin 中有这四个可见性修饰符:private、 protected、 internal 和 public。 如果没有显式指定修饰符的话,默认可见性是 public。包可以在函数、属性和类、...原创 2019-07-10 14:11:50 · 437 阅读 · 0 评论 -
Kotlin学习笔记——扩展
Kotlin 同 C# 类似,能够无需继承该类或使用像装饰者这样的任何类型的设计模式,就能扩展一个类的新功能。 完成这种功能的特殊方法叫做 扩展 。Kotlin 支持 扩展函数 与 扩展属性。扩展函数 声明一个扩展函数,需要用一个 接收者类型, 也就是被扩展的类型来作为他的前缀。以下示例代码是为S...原创 2019-07-15 18:44:10 · 163 阅读 · 0 评论 -
Kotlin学习笔记——数据类
数据类用关键字data标识data class User(var name: String, var age: Int)编译器自动从数据类的主构造函数中声明的所有属性导出以下成员equals()/hashCode() 对;toString() ,格式为User(name=Marry, age=18);componentN() 函数 按声明顺序对应于所有属性;copy() 函...原创 2019-07-16 14:50:32 · 574 阅读 · 3 评论 -
Kotlin学习笔记——密封类
密封类用来表示受限的类继承结构,取值是限定某些值,在某种意义上,他们是枚举类的扩展;密封类和枚举都是限定某些值,但是也有差别,每个枚举常量只存在一个实例,而密封类的一个子类可以有可包含状态的多个实例。密封类的声明要声明一个密封类,需要在类名前面添加 sealed 修饰符。虽然密封类也可以有子类,但是所有子类都必须在与密封类自身相同的文件中声明。(在 Kotlin 1.1 之前, ...原创 2019-08-01 16:02:57 · 257 阅读 · 0 评论 -
Kotlin学习笔记——对象表达式与对象声明
有时候,我们需要在不显示声明子类的前提下,需要声明一个类的对象,并对这个类做了少许的改动,在Java中,使用匿名内部类来实现,而在Kotlin中,用对象表达式和对象声明来实现。对象表达式要创建一个继承自某个类(或某些类)的匿名对象,我们可以在这样写:fun main(args: Array<String>) { // 创建一个继承自Listener类的匿名对象 se...原创 2019-08-08 17:09:59 · 248 阅读 · 0 评论 -
Kotlin学习笔记——类嵌套与内部类
嵌套类在一个类的内部声明一个类,叫做类嵌套。class Outer(var name: String) { class Inner(var log: Double, var lat: Double) { fun print() { println(name) // 嵌套类调用外部的属性,这里会编译报错 } }}内部...原创 2019-08-06 18:55:13 · 226 阅读 · 0 评论 -
Kotlin学习笔记——构造函数的一些特性
1. 构造函数的分类在 Kotlin 中,构造函数分为主构造函数和次构造函数,一个类可以有一个主构造函数以及一个或多个次构造函数。主构造函数是类头的一部分:它跟在类名(与可选的类型参数)后。class Person constructor(name: String) {}2. 主构造函数的一些特性2.1 constructor关键字如果主构造函数没有任何注解或者可见性修饰符,可以省略...原创 2019-07-08 16:21:16 · 261 阅读 · 0 评论