3.kotlin 类和函数

来源:互联网 发布:扁平疣网络医院 编辑:程序博客网 时间:2024/06/02 02:23

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()}
原创粉丝点击