测试环境:
- Kotlin 1.1.3
本文拿最常用的 JavaBean 来举例说明
一、javaBean 转 KotlinBean:
- java 中的 bean
public class JavaBean1 {
private String name;
private int age;
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}
- 上方的 javaBean 等价于 kotlin 中的
class KotlinBean(var name: String, var age: Int) {
}
分析:
- 看下 KotlinBean 如果创建对象和调用 getter 和 setter 方法
//创建一个对象
val kotlinBean = KotlinBean("珞神", 26)
//调用 getter 方法
val name = kotlinBean.name
//调用 setter 方法
kotlinBean.name = "zhangsan"
如果声明变量的关键字 var 改为 val ,则只具备 getter 方法
KotlinBean 也可以改编成下方这种方式
class KotlinBean() {
//必须要赋值才行,这点跟 java 定义变量不一致
var name = ""
var age = 0
}
二、自定义属性访问器
- 看代码:
class KotlinBean(var name: String, var age: Int) {
val data: String
get() {
return name + age
}
}
分析:
这个 data 属性使我们自己定义的,花括号内的是具体的逻辑,也就是这个属性值的定义算法,花括号外的是具体的格式
- 代码也可以简写为如下所示,省略大括号
class KotlinBean(var name: String, var age: Int) {
val data: String get() = name + age
}
三、 类的继承和实现
- 在类名之后使用冒号 然后后边跟接口和父类,中间用逗号隔开,如下所示:
class MainActivity : AppCompatActivity(),View.OnClickListener {
}