Kotlin开发Android笔记3:Kotlin中类与函数
2016-07-28
—–类的定义—–
如果你想定义一个类,你只需要使用 class 关键字。
//如定义一个TestKotlin类
class TestKotlin{
}
它有一个默认唯一的构造器。当然可以创建额外的构造器,通常情况下我们只需要这个默认的构造器。
你只需要在类名后面写上它的构造参数,而且如果这个类没有任何内容可以省略大括号:
class Student(name: String, age:Int)
//那么构造函数的函数体在哪呢?你可以写在 init 块中:
class Teacher(name:String, age:Int) {
init{
//TODO
//在init中做构造方法要做的事情,比如初始化数据等
}
}
—–类继承—–
任何类在默认情况下都是继承自 Any (就如同java中所有类都是Object的子类),当然同java一样我们可以继承其它类。
但是在kotlin中所有的类默认都是不可继承的(相当于java中类有个性符final),因此只能继承那些明确声明为open或者为abstract 的类:
//定义一个open类Bird
open class Bird(name: String)
//定义一个类Duck继承自Bird
class Duck(name: String, surname: String) : Bird(name)//如果只有单个构造器时,需要在父类继承下来的构造器中指定需要的参数。来替换Java中super调用。
—-方法(函数)介绍——
函数,也是就我们说的方法在Kotlin中可以使用 fun 关键字定义:
//定义onCreate方法,没有指定返回值时,它就会返回Unit,与Java中的 void类似
fun onCreate(savedInstanceState: Bundle?) {
//TODO
}
Unit 是一个真正的对象。你当然也可以指定任何其它的返回类型:
fun add(x:Int,y:Int):Int{
return x+y
}
如果返回的结果可以使用一个表达式计算出来,你可以不使用括号而是使用等 号:
fun add(x: Int,y: Int) : Int = x + y
小提示:分号也不是必须的。当然 你也可以使用分号,分号不是必须的。
—-函数参数——
Kotlin中的参数与Java中有些不同。上面我们写的一些函数就可以发现:在()中先写参数的名字再写参数的数据类型:
fun add(x:Int,y:Int):Int{
return x+y
}
下面看下给参数指定一个默认值使得它们变得可选,这是非常有帮助的。这里有一 个例子,在Activity中创建了一个函数用来toast一段信息:
//我们指定length的值为Toast.LENGTH_SHORT
fun toast(message:String,length:Int =Toast.LENGTH_SHORT){ Toast.makeText(this,message,length).show()
//就等同于我们java的代码
Toast.makeText(this,message,Toast.LENGTH_SHORT).show();
}
调用的时候可以传入第二个值或者不传,这样可以避免你需要的重载函数:
toast("Hello") toast("Hello", Toast.LENGTH_LONG);