Kotlin(三)

来源:互联网 发布:淘宝站外计销量的网站 编辑:程序博客网 时间:2024/06/05 20:33

怎么定义一个类

如果你想定义一个类,你只需要使用class关键字

class MainActivity{}

有一个默认唯一的构造器,只需要在类名后面写上它的参数。如果这个类没有任何内容可以省略大括号:

class Person (name: String, surname: String)

那么构造函数的函数体在哪呢?你可以写在init块中:

class Person (name: String, surname: String){    init{    }}

类继承

默认任何类都是基础继承自Any(与java中的Object类似),但是我们可以继承其它类。所有的类默认都是不可继承的(final),所以我们只能继承那些明确声明open或者abstract的类:

package com.zhoujian.kotlindemo/** * Created by zhoujian on 2017/5/19. */open class Animal(name:String){}
package com.zhoujian.kotlindemo/** * Created by zhoujian on 2017/5/19. */class Person (name: String, surname: String):Animal(name){    init {    }}

函数

函数(我们Java中的方法)可以使用fun关键字就可以定义:

override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main)       }

如果你没有指定它的返回值,它就会返回Unit,与Java中的void类似,但是Unit是一个真正的对象。你当然也可以指定任何其它的返回类型:

    fun add(x:Int,y:Int):Int{        return x+y    }

然而如果返回的结果可以使用一个表达式计算出来,你可以不使用括号而是使用等号:

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

构造方法和函数参数

Kotlin中的参数与Java中有些不同。如你所见,我们先写参数的名字再写它的类型:

fun add(x: Int, y: Int) : Int {    return x + y}

我们可以给参数指定一个默认值使得它们变得可选,这是非常有帮助的。这里有一个例子,在Activity中创建了一个函数用来toast一段信息:

    fun toast(message: String, length: Int = Toast.LENGTH_SHORT)    {        Toast.makeText(this, message, length).show()    }

如你所见,第二个参数(length)指定了一个默认值。这意味着你调用的时候可以传入第二个值或者不传:

 toast("Hello") toast("Hello", Toast.LENGTH_LONG)
原创粉丝点击