kotlin 学习笔记


 1,不需要findViewById,直接id 就可以使用,多平台应用的编程语言


 2,main 方法和java 的不通,在配置好的android studio 中,新建一个kontlin file,快捷键就能生成一个main 方法,在配置好的android studio中只需要

3.kontlin 中默认的作用域是public 结尾没有分号 :号是继承 方法类型 参数类型 字段类型的区分标志

4,Unit 类型 类似java 中的void 使用的都是 java 中的包装类型,类型推断 根据结果推断类型

5,一切变量的修饰符都是 var 或者是 val val 类似java 的final


6,去变量的方式不同 ${变量}


7,创建类没有new,直接在类名后面加类型

8,参数类型后面有? 表示可以null
9,完全不需要get 和set 方法
10,enum 只有跟在关键字class 前面才是关键字 叫做软关键字
11,枚举中的关键元素之用,分开  枚举中的方法用 ; 分开
12,kotlin 没有关键字 用when
13,do while 和 java 一样,for 循环 跳出 可以break 标准的是用loop 跳出循环
14,vararg 修饰的是可变参数
15,不需要 类似java 中的utils 这样的方法 使用内联方法修饰符 inline
16,集合参数默认值 中缀

kotlin 字符串 安全字符串

字符串和java 没有区别 唯一的区别是jkotlin 添加了扩展方法

null 直接不会通过 ?.是一个安全操作符 其实也是 需要手动完成
kotlin 支持多继承 不用open 修饰的类就是 final 的,方法的默认修饰符也是 final

内部类 inner 关键字 kotlin 没有static,object是内部类, Companion静态内部类
Object 创建匿名内部类

使用java 定义的接口
直接 类名.方法名字
public 所有地方可见 private 内部之外同文件中可见
protect 受保护的 内部可见 子类内部可见 没有java 中的default 有的是 internal 模块可见

数据类与委托

data 数据类 自动重写了 equales 和toString 这样的方法 这些属性 进行输出

construct init

delegate 通过 by 关键字 来实现 可以委托属性 方法 提供了很多标准的代理方法

高级特性

lamda 就是 就是什么呢?-> 操作符重裁

 协程 就是线程 十分轻量级别 类似异步

泛型 注解和反射

out 泛型申明 生产
in  泛型申明  消费
* 代表 java 中的?

泛型指定约束
可以指定多个约束 where 关键字

注解和反射

注解和java 中没有任何区别
annotation 注解类 添加原注解 可以使用来注解类 属性 方法

反射 这和java 差别很大

类型::classs.java
也可以 String.javaClass
属性 反射 ::属性名字

kapt 注解处理器 和 butterknife 一起使用

anko 封装的工具类
github 地址

https://github.com/Kotlin/anko

http://www.zuanke8.com/thread-4162658-1-1.html


lateinit 延迟初始化

//reified 具像化 和inline 一起使用

deferred 协程 中的延迟

高阶函数就是将函数用着参数或者返回值的函数

对于接受另一个函数作为参数的函数,我们必须为该参数指定函数类型。

as 是转换的意思

extern











你可能感兴趣的:(kotlin,android)