自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Kotlin学习(二十二)—— 相等性、空安全、异常。

相等性Kotlin 中有两种类型的相等性: 1. 引用相等(两个引用指向同⼀对象) 2. 结构相等(用 equals() 检查)引⽤相等引用相等由 ===(以及其否定形式 !== )操作判断。a === b 当且仅当 a 和 b 指向同⼀个对象时求值为 true。结构相等结构相等由 ==(以及其否定形式 != )操作判断。按照惯例,像 a == b 这样的表达式会翻译成...

2018-03-28 23:13:52 448

原创 kotlin学习(二十一)—— 区间 ,类型转换符,this表达式

区间区间表达式由具有操作符形式 .. 的 rangeTo 函数辅以 in 和 !in 形成。区间是为任何可比较类型定义的,但对于整型原生类型,它有⼀个优化的实现。以下是使用区间的⼀些示例fun main(args: Array<String>) { for(i in 0..10){ //[0-10]的闭区间 print(i) } pr...

2018-03-28 21:37:17 736

原创 Kotlin学习(二十)——解构声明和集合

以前在面向对象的那篇文章中,我们说到了数据类,也提到了数据类的j解构 现在我们详细的说一下解构 如果我们定义了data class ,编译器会自动添加operator fun component()N函数,来帮助对象解构:data class Person(var name:String,var age :Int)fun main(args: Array<String>...

2018-03-27 13:45:41 537

原创 Kotlin学习(十九)—— 携程

协程的引入注意:kotlin中的协程在1.1中还是实验性的(小编理解为,先不要用) ⼀些 API 启动⻓时间运⾏的操作(例如⽹络 IO、⽂件 IO、CPU 或 GPU 密集型任务等),并要求调⽤者阻塞直到它们完成。协程提供了⼀种避免阻塞线程并用更廉价、更可控的操作替代线程阻塞的⽅法:协程挂起协程通过将复杂性放⼊库来简化异步编程。程序的逻辑可以在协程中顺序地表达,而底层库会为我们解决其异...

2018-03-27 12:24:03 4577

原创 Kotlin学习(十八)—— 内联函数

为什么要有内联函数使用高阶函数会带来⼀些运⾏时的效率损失:每⼀个函数都是⼀个对象,并且会捕获⼀个闭包。即那些在函数体内会访问到的变量。内存分配(对于函数对象和类)和虚拟调用会引⼊运行时间开销。 但是在许多情况下通过内联化 lambda 表达式可以消除这类的开销。下述函数是这种情况的很好的例子。即 lock() 函数可以很容易地在调用处内联。 考虑下⾯的情况:fun <T&gt...

2018-03-26 22:06:19 1194

原创 Kotlin学习(十七)—— 高阶函数和lambda表达式

高阶函数高阶函数是将函数用作参数或返回值的函数。这种函数的⼀个很好的例⼦是 lock() ,它接受⼀个锁对象和⼀个函数,获取锁,运行函数并释放锁 get一下上面的信息 1. 函数能作为参数传入一个函数 2. 函数能作为返回值,声明。 看下面的代码:fun <T> lock(lock:Lock, body :() -> T):T{ lock.lock()...

2018-03-26 16:48:52 443

原创 Kotlin学习(十六)—— 函数

kotlin的函数基础比较简单,这里很简要的说明一下。函数声明这个函数声明就随意示范一下吧: 函数的声明:fun 方法名 (形参列表):返回值类型 { 方法体}fun double(x: Int): Int { return 2*x}函数用法:fun main(args: Array<String>) { var sum = sum(...

2018-03-26 15:32:31 291

原创 Kotlin学习(十五)——委托

委托模式已经证明是实现继承的⼀个很好的替代方式式,而 Kotlin 可以零样板代码地原生支持它。类 Derived 可以继承⼀个接口Base ,并将其所有共有的方法委托给⼀个指定的对象 这相当于Java的动态代理模式类委托interface Base{ fun print()}class BaseImp1 :Base{ override fun print()...

2018-03-18 22:50:15 372

原创 Kotlin学习(十四)——对象表达式(比Java的匿名类强大的多)

Java要使用一个用完就会回收的对象,就要用到匿名对象。 Kotlin也会有匿名对象,Kotlin用的是对象表达式,这比Java的先进的多。 有时候,我们需要创建⼀个对某个类做了轻微改动的类的对象,而不用为之显示声明新的⼦类。Java ⽤匿名内部类 处理这种情况。Kotlin ⽤对象表达式和对象声明对这个概念稍微概括了下。要创建⼀个继承⾃某个(或某些)类型的匿名类的对象,我们会这么写:...

2018-03-16 21:42:03 575

原创 Kotlin学习(十三)——枚举类详解(你想不到的简单,有详细代码)

和Java的枚举类一样,枚举类的最基本的⽤法是实现类型安全的枚举。enum class Direction { NORTH, SOUTH, WEST, EAST}每个枚举常量都是⼀个对象。枚举常量⽤逗号分隔。和Java一样,枚举类就只能获得规定的对象。不能获得规定之外的对象。而且规定的对象都是唯一的fun main(args: Array<String>)...

2018-03-16 20:32:44 946 1

原创 Kotlin学习(十二)——嵌套类和内部类(很简单,内部类和Java几乎一样)

kotlin和Java不一样的是,Java只有内部类,而Kotlin除了内部类还有嵌套类。嵌套类class Outer{ class Nest { fun foo() = 2 }}//嵌套类类似于java的静态内部类,使用方式如下fun main(args: Array<String>) { var a = Outer.Ne...

2018-03-16 15:54:37 245

原创 Kotlin学习(十一)——泛型

Kotlin和泛型一样都有类型参数 泛型类:class One <T>(var i:T){ //泛型类 fun foo(i:T){ println(i) }}创建泛型类的对象:fun main(args: Array<String>) { var one1 = One<Int>(1) var o...

2018-03-16 00:33:42 452

原创 kotin学习(十)——数据类和密封类(详细)

我们经常创建⼀些只保存数据的类。在这些类中,⼀些标准函数往往是从数据机械推导⽽来的。在 Kotlin中,这叫做 数据类并标记为 data data class User(var name:String,var age:Int)上面简单的一行代码的功能是很强大的。就一行代码会有下面的成员导出: 1. equals() / hashCode() 对。 2. toString() 格式是 “...

2018-03-15 21:04:13 425

原创 Kotlin学习(九)——可见性修饰符(简单)

本片博客会很简单的阐述可见性修饰符 1. kotlin总共有四个修饰符:private 、protected 、internal 和 public。 2. 四个修饰符能修饰:类、对象、接⼝、构造函数、⽅法、属性和它们的 setter 都可以有 可⻅性修饰符。 3. 要注意的是:getter访问器的可见性一定是与属性一样的,所以我们要改变访问器的可见性只能改变setter。 4. 如果没有显...

2018-03-15 15:11:44 298

原创 Kotlin学习(八)——扩展(扩展函数和属性以及伴生对象)

我们在学习Java中,有些类的API并不能帮助我们解决问题,所以我们不得不在现有的类库的基础之上,写一些工具类,要么继承,要么使用组合依赖,这实际上是一个繁琐的工作,代价较大。 Kotlin则不一样,它像C#和Gosu一样,为我们提供了扩展的特性。扩展定义Kotlin 同 C# 和 Gosu 类似,能够扩展⼀个类的新功能⽽⽆需继承该类或使⽤像装饰者这样的任何类型的设计模式。这通过叫做...

2018-03-15 14:26:12 1401 1

原创 Kotlin学习(七)——接口

之前在类的继承中,我们已经提到了接口,本片博客我们来详细讲讲接口 首先要重点说一下:Kotlin中的Lambda表达式和Java中的Lambda表达式有点不一样 Kotlin中lambda表达式是,实现一个函数,而Java中是实现函数式接口 Kotlin中函数可以当做函数的参数:fun getArraySum(array: Array<Int>,add:(a:Int,b:...

2018-03-15 00:09:55 322

原创 Kotlin学习(六)——属性和字段

首先我们要分清属性和字段的区别属性:Java中的属性,通常可以理解为get和set方法。 看下面Java代码:public class Person { private String name; private int age; public String getName() { return name; } public vo...

2018-03-14 23:15:17 550 1

原创 Kotlin学习(五)——类的继承(抽象类,覆盖)

Kotlin中继承的根——Any在 Kotlin 中所有类都有⼀个共同的超类 Any ,这对于没有超类型声明的类是默认超类class Example // 从 Any 隐式继承注意:Any 不是 java.lang.Object ;尤其是,它除了 equals() 、hashCode() 和 toString() 外没有任何成员一般的继承基类,要想被继承要用open修饰,不然默...

2018-03-14 21:01:00 1994

原创 Kotlin学习(四)—— 类与对象(类的声明,属性初始化问题,构造器)

类的声明类声明由类名、类头(指定其类型参数、主构造函数等)和由⼤括号包围的类体构成。类头和类体都是可选的 定义一个最简单的类class A这样就定义了最简单的一个类了,什么都没有的类,没有类头和类体。(没有类体,可以省略花括号)接下来定义一个正常的类:class Person public constructor(name: String,age: Int)/*主构造...

2018-03-14 17:41:41 5260 3

原创 kotlin学习(三)-------方便好用的字符串特性

回顾Java我们如果要使用字符串的时候,如果要输出一些方法返回的字符串,我们通常要这样@Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + ...

2018-03-14 15:01:45 269

原创 Kotlin学习(二)-------绝对震撼你的kotlin数据类-data class

你所不了解的Kotlin数据类(data class)回顾JavaJava中我们在定义一个POJO,DTO这些要遵循JavaBean原则的实体类的时候,我们要写属性对应的setXxx和getXxx,以及equals(),toString(),hashCode()这些方法呢?比如像如下这样:public class Person { private String ...

2018-03-14 14:49:40 7647

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除