
Kotlin
文章平均质量分 73
Linleslie
这个作者很懒,什么都没留下…
展开
-
Kotlin(一)-->Android Studio配置Kotlin开发环境
转载请标明出处:一片枫叶的专栏新的产品开发中Android端已经完全使用Kotlin作为开发语言了,目前为止还没有发现什么不适的地方。所以今天我们将讲解一下如何在Android Studio中配置Kotlin开发环境,算是为Kotlin讲解一下入门知识,后续会慢慢更新kotlin相关知识。什么是Kotlin?这里暂时引用一下百度百科中对Kotlin的讲解: Kotlin 是一个基于 JVM转载 2016-12-14 11:34:27 · 390 阅读 · 0 评论 -
Kotlin笔记 二 数据类型
第二章 基础类型整型Kotlin提供了四中整型Byte:在内存中占8位,表示范围为-128—127.兼容java的byte和Byte类型;Short:占16位,表示范围为-1215-(215)-1兼容java的short和ShortInt:占32位,兼容java中的int和IntegerLong:占64位,兼容java的long和LongKotlin中没有基本数据类型,只有引用类型(...原创 2019-05-23 09:26:26 · 631 阅读 · 0 评论 -
Kotlin笔记 三 运算符和表达式
第三章 运算符Kotlin中的运算符都是以***方法形式***实现的,各种运算符对应的方法名都是固定的;如果某个自定义类提供对应运算符对应的方法(既可以是成员方法也可以是扩展方法),那么该类的对象就能使用该运算符进行运算;单目运算符+、-、!+a–(对应方法)–>a.unaryPlus()-a---->a.unaryMinus()!a---->a.not+a和a.u...原创 2019-05-28 10:33:18 · 797 阅读 · 0 评论 -
Kotlin笔记 四 循环控制语句
if除了和Java一样的用法,if分支还可以作为表达式使用var str=if(){ .... }esle if(){ .....}else{ ..... }整个分支最后会有一个返回值,代码块中最后一个表达式的值即为整个分支的返回值;注意:由于分支必须有返回值,所以必须有else分支,而else if为可选分支;如果只是if…else分支,就变成了Java中的三...原创 2019-05-28 10:34:11 · 211 阅读 · 0 评论 -
Kotlin笔记 五(一) 数组
数组(一)、概念Kotlin为数组增加了一个Array类,为基本数据类型的数组增加了XxxArray类(如:IntArray、ByteArray…)(二)、创建数组kotlin数组使用Array类代表,Kotlin数组就是一个Array类的实例,创建数组其实就是创建Array的实例,创建方式:使用arrayOf()、arrayOfNulls()、emptyArray()工具函数使用A...原创 2019-05-28 10:34:57 · 1727 阅读 · 0 评论 -
Kotlin笔记 五(二)集合
第五章 集合Kotlin中集合分为可变集合(可以增删改查)和不可变集合(只能读取元素);Kotlin中集合任然由Collection和Map这两个根集合接口派生子接口的Kotlin在JVM中并未真正去实现HashSet、LinkedHashSet、linkedList、ArrayList等这些类,只是为Java中的这些类指定了一个类型别名,而直接借用了这些集合类,为他们扩展了更多方法;1、...原创 2019-05-28 10:35:34 · 234 阅读 · 0 评论 -
kotlin基本语法
Kotlin基础基本语法定义包 package my.demo import java.util.*并不要求包与目录匹配,源文件可以在文件系统任意位置定义函数带参数以及返回值的函数fun 函数名(参数:参数类型):返回值类型{ 代码块}如: fun sum(a: Int, b: Int): Int { return a原创 2016-12-14 16:25:53 · 467 阅读 · 0 评论 -
Kotlin笔记(二)--循环控制语句.md
if除了和Java一样的用法,if分支还可以作为表达式使用var str=if(){ .... }esle if(){ .....}else{ ..... }整个分支最后会有一个返回值,代码块中最后一个表达式的值即为整个分支的返回值;注意:由于分支必须有返回值,所以必须有else分支,而else if为可选分支;如果只是if…else分支,就变成了Java中的三...原创 2018-09-20 10:52:10 · 189 阅读 · 0 评论 -
Kotlin笔记 第六 (一)函数.md
函数1、函数定义格式: fun 函数名(数据类型 形参1,....):返回值类型{ ...... return... }当没有返回值时,直接省略掉":返回值类型"即可或者使用":Unit"声明(Unit相当于Java中的void)代表没有返回值1.1、形参默认值除了返回值写法和Java中外,K原创 2018-09-21 17:45:24 · 434 阅读 · 1 评论 -
Kotlin笔记 六 (二)高阶函数.md
1、函数类型Kotlin融合了面向过程的特征,而我们知道面向过程中函数和基本数据(整数、布尔等)都是一样的地位,同样也具有数据类型;既可定义变量,也可以当做函数的形参类型;函数类型:有参数列表、->、返回值类型组成的;如: fun foo(a:int,name:String):String{}所以该函数类型就是:(Int,String)->String当做变量:1、定义...原创 2018-09-21 17:45:54 · 830 阅读 · 1 评论 -
Kotlin笔记 六(三) Lambda表达式.md
Lambda表达式#1、定义Labmbda表达式总是被大括号括这定义lambda表达式不需要fun关键字,无须指定函数名形参列表位于“->”之前声明,参数类型可以省略函数体位于“->”之后函数体的最后一个表达式自动作为Lambda表达式返回值,无须使用return关键字如:{a:Int,b:Int-> a*b}{it* it}当只有一个形参时,可以...原创 2018-09-21 17:46:35 · 397 阅读 · 1 评论 -
Kotlin笔记 六(四) 匿名函数.md
匿名函数故名思意,就是没有函数名的函数形式: fun(形参列表):返回值类型{ 函数体 }1、匿名函数返回值类型声明和普通函数返回值类型声明一样:如果使用普通代码块作为函数体有返回值显示声明函数返回值类型,否则认为函数没有返回值(没有函数返回值声明、或者是:Unit);如果函数体是单表达式,则无需指定函数返回值类型,系统可以自动推断出;//1.没有返回值的两种写法 fun ...原创 2018-09-25 17:07:57 · 1012 阅读 · 1 评论 -
Kotlin笔记 八 (六)对象表达式
对象表达式Kotlin中取消了匿名内部类这个功能,Java中匿名内部类缺点:只能指定一个父类型(接口或者父类)提供了一个更强大的语法:对象表达式来替代匿名内部类,可以指定0~N个父类型(接口或者父类);对象表达式除了不能有构造器、嵌套类外,支持其他任何成员;语法:object(关键字)[:0-N个父类型(类或者接口)]{ //类体部分 //初始化块 //属性 //方法 //内部...原创 2019-05-30 17:05:18 · 341 阅读 · 0 评论 -
Kotlin笔记 七 (一)类.md
类1.定义 [修饰符] class 类名 [constructor 主构造器]{ 0~N个次构造器 0-N个属性 0-N个方法 }空类:没有类体,可以省略大括号如:class EmptyClass1.1、修饰符类修饰符:public、internal、private(只能出现其一),final、Open、abstract(只能出现其一)构造器修饰符:publ...原创 2018-09-27 10:09:46 · 256 阅读 · 0 评论 -
Kotlin笔记 七(二)解构.md
解构1、将对象N个属性解构给多个变量,如:var (name,pass)=user(对象)要解构多少属性给变量,对象类必须至少定义多少个componentN(N从1开始)方法,并且该方法必须使用operator修饰;这儿为什么说至少呢?因为左边变量个数可以小于componentN方法个数,即只是将需要的属性解构给变量;如:class Dog constructor() { va...原创 2018-09-27 10:10:32 · 280 阅读 · 0 评论 -
Kotlin笔记 七(三) 包与访问控制符.md
导包1、封装概念封装:即将对象状态信息封装在对象内部,不允许外部程序直接访问对象内部信息,而是通过对象暴露的方法实现对内部状态的访问与操作2、包Kotlin编译器总是会为源文件中的包结构生成对应的文件目录,而Javac编译期需要-d选项才会生成文件目录;2.1、导包Kotlin支持两种方式:精确导包:import foo.bar//导入foo包中的Bar和通配符导入import...原创 2018-09-27 10:11:00 · 1105 阅读 · 0 评论 -
Kotlin笔记 七 (四)构造器
构造器主构造器koltin中主构造器是在类头声明的,需要为主构造器指定访问修饰权限或者注解,不能省constructor关键字,否则可以省略;kotlin类可以定义01个主构造器,0N个次构造器;主构造器没有执行体主构造器作用:在属性声明时可以使用主构造器定义的形参初始化块可以使用主构造器定义的形参kotlin的主构造器相当于java中的初始化块增强版(java版初始化块不支持形...原创 2019-05-28 10:31:40 · 414 阅读 · 0 评论 -
Kotlin笔记 七(五) 继承与多态.md
1、继承和Java一样,Kotlin继承也是***单继承***,每个子类最多只有一个直接父类语法格式: [修饰符] class 子类名:父类名{ }定义一个Kotlin类没有显示指定父类,默认扩展Any类。Any类是所有类的父类(要么直接父类要么间接父类);Any类不是java.lang.Object类Kotlin的类默认时final修饰的,即不能派生子类,为了让其类可以派...原创 2018-09-29 10:09:30 · 415 阅读 · 0 评论 -
Kotlin笔记 八(三) final修饰符.md
final与open修饰符final:可以修饰类、方法、属性Kotlin默认为非抽象类、非抽象属性、非抽象方法自动添加final修饰final修饰符不能修饰局部变量原创 2018-10-09 13:51:30 · 1095 阅读 · 0 评论 -
Kotlin笔记 八(一) 扩展方法与扩展属性.md
1、扩展方法直白一点就是动态为类增加方法(而java是不支持的,java是静态语言,当一个类定义完成后,程序无法为该类增加、删除属性、方法,除非重写编辑该类的源代码(.java文件),重新编译),*当为父类添加了扩展方法,其子类也将继承到该方法;可以为任何类无论是形同定义的类还是自定义的类添加扩展方法*1.1、语法格式fun 类名(或者接口).方法名(){ }如:定义了两个具...原创 2018-09-29 12:31:02 · 396 阅读 · 0 评论 -
Kotlin笔记 八(二) 匿名扩展函数
带接收者的匿名函数Kotlin支持为类扩展匿名函数,匿名函数所属的类纪委该函数的接受者,相当于扩展匿名函数语法格式普通扩展方法:fun 类名.方法名(参数列表):返回值类型{}扩展匿名函数:var fn=fun 类名.(参数列表):返回值类型{}匿名扩展函数类型:类名.(参数列表类型)->返回值类型普通函数、扩展方法类型:(参数列表类型)->返回值类型定义一个带接收者的匿...原创 2018-10-09 13:49:34 · 903 阅读 · 0 评论 -
kotlin笔记 八(四) 接口.md
接口语法格式[修饰符] interface 接口名:父接口1,2..N{ 0-N个属性定义 0-N个方法定义(包括抽象方法、非抽象方法) 0-N个嵌套类、接口、枚举类 }修饰符接口访问修饰符:public、internal、private之一,或者省略不写,省略默认是publicKotlin中接口和java中接口区别:java中所有成员都会自动使用public修饰,...原创 2018-10-09 13:52:26 · 279 阅读 · 0 评论 -
kotlin笔记 八 (五)嵌套类和内部类.md
嵌套类Kotlin中的嵌套类相当于Java中的静态内部类;Koltlin中取消了"static"关键字,Kotlin类中成员除了嵌套类,其他成员都是非静态成员,(按照java中静态成员不能访问非静态成员的原则),嵌套类不能访问外部类中除其他嵌套类以外的其他任何成员;嵌套类相当于外部类的静态成员,外部类的所有方法、属性、初始化块都可以使用嵌套类来定义变量、创建对象;外部类不能直接访问嵌套类成员,...原创 2018-10-09 13:53:10 · 409 阅读 · 0 评论 -
kotlin笔记 八 (七)对象声明与伴生对象.md
如果对象是函数式接口(只有一个抽象方法的接口),则可以使用带接口类前缀的Lambda表达式创建对象,如:Runnable Var r=Runnable{ ......(run()方法实现) }1、对象表达式对象表达式成员:初始化块、属性、方法、内部类(不能包含嵌套类),不能有构造器对象表达式相当于Java中的匿名内部类,但功能更强大:对象表达式可以只用指定父类型,也可以有一...原创 2018-10-09 13:54:37 · 529 阅读 · 0 评论 -
Kotlin笔记 八 (八)枚举类
枚举类1.1 成员kotlin使用enum class关键字定义枚举类,可以实现一个或多个接口;枚举类可以有自己的属性、方法、构造器(构造器只能使用private修饰符,省略则默认使用private);1.1.1 属性枚举类属性***只能是只读属性***,因此该属性必须在构造器或者初始化块中指定(一般不会再定义时指定初始值,这样每个实例属性就一样的,也就失去意义),因此,一般需要显...原创 2018-10-09 18:18:58 · 618 阅读 · 0 评论 -
Kotlin笔记 九 异常处理
异常处理Kotlin中与Java中异常区别:Kotlin抛弃了checked异常,相当于所有异常都是运行时异常,意味着程序员想捕获救不活,不想捕获也可以,不需要使用throws关键字声明抛出异常;异常处理机制语法 try{ }catch(e:Ex.ception){ }finally{}包含1个try块,0N个catch块(异常类型应该子异常在前父异常在后,否则子异常将永远...原创 2019-06-03 16:04:21 · 755 阅读 · 0 评论 -
Kotlin笔记 十 泛型
泛型Kotlin支持声明处型变和使用处型变,Java只支持使用处型变##1.1、定义类、接口泛型 ##open class Fruit<T>{ var name:String open var info:T? constructor(name: String,info:T){ this.name=name this.info...原创 2019-06-05 17:45:56 · 299 阅读 · 0 评论 -
Kotin笔记 十一 注解
注解定义注解kotlin中定义注解使用关键字:annotation classkotlin中不允许为注解定义注解体,即注解后没有“{}”如: annotation class KotlinTag注解可以使用的程序单元:类或者接口方法或者函数属性构造函数(主构造函数使用注解时必须不能省略Constructor)注解属性注解中可以带属性,但由于注解没有注解体,属性只能在注...原创 2019-06-10 15:12:40 · 498 阅读 · 0 评论 -
kotlin笔记 十二 (一)java与Kotlin互调
java与Kotlin互调第一部分 Kotlin中调用Java1、属性Kotlin调用、修改属性、就是访问getter、setter方法,只要Java提供getter、setter方法,该属性在Kotlin中就会被当成读写变量,只提供了getter方法,被当成只读属性;注意:如果getter返回值是boolean类型,该getter方法名是以is开头,Kotlin会将其当成属性名与gett...原创 2019-06-12 18:16:56 · 905 阅读 · 0 评论 -
Kotlin笔记 十二(二) 反射
反射Kotlin中属性和函数与对象一样都是一等公民,可以直接通过反射获取其引用;1.1、类引用Kotlin中的类引用用KClass表示,引用的是KClass对象,Java的类引用是java.lang.Class对象,二者不一样;对于已知的Kotlin类,通过以下获取其类引用: var c=MyClass(类名)::classs如果已有Kotlin对象,也可使用对象获取类引用: ...原创 2019-06-12 18:18:07 · 1023 阅读 · 0 评论