Kotlin(三)|Kotlin(三) - 类和函数

怎么定义一个类 如果你想定义一个类,你只需要使用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 }

【Kotlin(三)|Kotlin(三) - 类和函数】然而如果返回的结果可以使用一个表达式计算出来,你可以不使用括号而是使用等号:
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)

    推荐阅读