3.kotlin 类和函数

1.类的创建

在kotlin中类的创建很简单,只需要

class Person{
}
因为在kotlin中有默认的构造函数,当我们需要向这个类里面传入参数的时候,和java有点不同的是,参数直接在类名中,并且是 (变量名:类型)的格式,并且如果这个
类没有任何的内容就可以省略大括号和内容

class Person(name: String, surname: String)
//或是
 class Person(name: String, surname: String){
}
以上的两种方式都是可以的
2.主构造函数
以上的实现是属于主构造函数,相当于默认的构造函数,而在主构造函数中,我们想要初始化一些数据,必须要把内容写在 init的内容块中
class Person(name:String,surname:String){
    init{
        val namelength=name.length
    }
}
3.次构造函数
当我们想要实现像java中的多种构造函数的效果的时候,就需要用到一个 constructor 的关键字

class Person {

	//主构造函数
    constructor() {
		Log.e("Person","2")
    }

    //通过this调用主构造函数,类似java中的super的调用
    constructor(name: String):this() {
		Log.e("Person","2")
    }

    constructor(name: String, age: Int) : this(name) {
    	Log.e("Person","3")
    }
}

在上面的代码中,相当于次构造函数委托给主构造函数,相当于java中的 super操作,次函数有自己要实现的内容,并且实现主函数中的内容

当代码调用这个类的时候

val person=Person("name1","name2")

调用了第三个构造方法,并且打印出123,如果不想要继承主构造函数,或是其他的构造函数,只需要去掉后面的 (:this())即可。

4.类继承
在kotlin中也有和java中一样的基类 Any (相当于java 中的Object),一般的类是不继承,我们新建一个类的时候,能够继承的只有,
生命了 open 或是 abstract 的类,而继承也是很简单,和构造方法的继承一样

open class body(height: Int)
class Person(name: String, height: Int) : body(height)
5.函数
在java中相当于方法,在kotlin中定义函数只需要用 fun 这个关键字即可

//当没有指定数据类型的时候为无返回类型,会返回一个Unit,相当于java的void,不过Unit是一个真正的对象
fun log(){
	Log.e("log","log")
}

//以下的就是指定返回Int类型
fun add(x: Int, y: Int) : Int {
    return x + y
}

//能够用一个等式结束的内容,可以简写为以下这种方式

fun add(x: Int, y: Int) : Int =x+y

//还可以为函数添加默认值,这样调用的时候,可以不需要传入这个值
fun atoast(message:String ,duration: Int=Toast.LENGTH_SHORT){
    Toast.makeText(this,message,duration).show()
}

猜你喜欢

转载自blog.csdn.net/shuang__zi/article/details/77976757