转载请注明出处:王亟亟的大牛之路
开篇之前还是老规矩,先安利https://github.com/ddwhan0123/Useful-Open-Source-Android 还是尽量每天做更新和维护
Kotlin和Java一样支持多构造函数的姿势,并且对属性对get/set方法进行了二次封装
这一篇,也通过简单的demo来讲一下相关知识
构造函数
在说Kotlin构造函数之前先提一提Java的构造函数和实例方法那些事
构造方法和实例方法的区别:
主要的区别在于三个方面:修饰符
、返回值
、命名
1、和实例方法一样,构造器可以有任何访问的修饰符,public、private、protected或者没有修饰符
,都可以对构造方法进行修饰。不同于实例方法的是构造方法不能有任何非访问性质的修饰符修饰,例如static、final、synchronized、abstract等都不能修饰构造方法。2、返回类型是非常重要的,实例方法可以返回任何类型的值或者是无返回值(void),而构造方法是没有返回类型的,void也不行。
3、至于命名就是构造方法与类名相同,当然了实例方法也可以与类名相同,但是习惯上我们为实例方法命名的时候通常是小写的,另一方面也是与构造方法区分开。
而构造方法与类名相同,所以首字母一般大写。
Kotlin的构造函数相对来说就更简便
如果是无参数的就和java中的 类定义一摸一样
class Wjj
如果是有参数的,就直接加在类名后面,像这样
class Wjj(userName:String,age:Int)
因为无法在主构造函数中做高端操作,所以提供了一个init{}的姿势来解决一些 初始化的问题,像这样
init {
println("----> "我是init")
}
Kotlin也支持多个构造函数,但是都是会继承主构造函数,像这样
open class Student(var name: String) {
init {
if (name.equals("wjj")) {
name = "王亟亟"
}
println("----> Student 构造函数 name " + name)
}
var age: Int = 0
var sex: Boolean = true
get() {
return !name.equals("王亟亟")
}
constructor(name: