为什么可以在Kotlin的类外部编写函数?

我不明白为什么可以在Kotlin的类外编写函数?这是一个好习惯吗?

例如,在Kotlin中可以在我的MainActivity课外编写一个函数:

fun hello(){}

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

hello()

}

}

在Java中,这是不可能的!那不是面向对象语言正常工作的方式,对吗?

在文档中,他们讨论了经典函数的 函数和在类或对象内部定义的函数的 ,但是他们没有解释何时使用一个或另一个更好。

回答:

在Java中,这是不可能的!那不是面向对象语言正常工作的方式,对吗?

稍停片刻,然后重新考虑Java静态方法的性质。类应该是对象的蓝图,描述它们的行为和状态。但是您可以调用静态方法而无需创建任何实例。

这如何适应面向对象的情况?静态方法如何“属于”其声明的类?

实际上,静态方法是Java中的一种技巧,它们污染并滥用了类的OOP概念。但是这些年来,您已经习惯了它们,所以您不再有这种感觉了。

从概念上讲,静态方法是顶级函数,Java使用其声明类的名称作为其命名空间。与此相反,Kotlin允许您声明顶级函数,而不会将类误用于命名空间。

以上是 为什么可以在Kotlin的类外部编写函数? 的全部内容, 来源链接: utcz.com/qa/407067.html

回到顶部