PGzxc

纸上得来终觉浅 绝知此事要躬行

概述

在java中,不管是为了实现接口或者抽象类类,我们总是习惯使用匿名内部类。最熟悉的例子,莫过于对单击事件的监听,也就是这样写:

btn.setOnClickListener(new OnClickListener{//处理单击事件逻辑});

尽管该匿名类只能被使用一次,这样,我们没有必要再去实现OnClickListener接口并创建一个类,从而简化了代码。可是,在kotlin中,并没有匿名类这一概念。巧妇无米之炊啊,碰到监听事件或者回调,是不是得老老实实的写一个实现类呢?尽管Kotlin没有匿名内部类,恰巧其用object一个简单的关键字,解决了这一个问题。下面我们来看看神奇的object有什么魔法效果呢?

阅读全文 »

前言

如果想让我们的类成为一个方便的数据容器,我们需要重写三个通用的对象方法:toString、equals和hashCode,像IntelliJ IDEA这样的IDE都会帮助我们自动生成并验证是否正确一致地实现了这三个方法。
在Kotlin中,我们无需生成这三个方法,如果我们对类添加了修饰符data,编译器会为我们自动生成必要的方法

阅读全文 »

可见性修饰符

可见性修饰符用于对其修饰对象的适用范围。在Kotlin中,存在private、protected、internal以及public等四种修饰符,它们可用于修饰类、对象、接口、构造器、函数、属性以及属性的设置方法等。
注:属性的取值方法永远与属性本身的可见度一致,因此不需要修饰符修饰。
在不同的作用范围内,修饰符的意义有一定的差别,下面从包、类和接口、模块(Model)等三个范围内看

阅读全文 »

前言

伴生对象又叫同伴对象(Companion Object);
Kotlin没有静态方法(static method),可以使用同伴对象替代。
如果在类中声明了一个同伴对象,那么只需要使用类名就可以调用同伴对象的成员了。

阅读全文 »

概述

一般类和函数,只能使用具体的类型:要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的约束对代码的限制很大。而OOP的多态采用了一种泛化的机制,在SE5中,java引用了泛型。

泛型即"参数化类型"。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。

在Kotlin中,依然可以使用泛型,解耦类与函数与所用类型之间的约束,甚至是使用方法都与Java一致。

阅读全文 »
0%