<本文学习郭神《第三行代码》总结>
在Java中申明静态方法,只需要加入关键字static就可以了
public class Util{
public static void funAction(){
print("静态方法")
}
}
在上述代码中fun()就是一个静态方法,在调用该方法时,可以直接调用Util.funAction()。
但是在Kotlin中极度弱化了静态方法这个概念,Kotlin中并没有直接定义静态方法的关键字,但是提供了一些其他的语法支持这种特性。
1、单例模式
通过单例模式可以将上述代码就可以修改成:
object Util{
fun funAction(){
print("静态方法")
}
}
这里funAction并不是静态方法,但是仍然可以通过Util.funAction()调用。
2、companion object
使用单例模式会将类中所有方法全部变成类似于静态方法的调用方式,这种方法并不能满足更多需求,所以这里使用companion object。
所以,上述代码就可以修改成:
class Util{
fun funAction(){
print("static fun")
}
companion object {
fun funAction2() {
print("static fun2")
}
}
}
这里首先要将Util改成一个普通类,funAction需要实例化才能调用,funAction2可以直接调用Util.f