为什么 kotlin 不允许像 Java 一样在类中使用 main() 函数?为什么允许在课堂外这样做?这不是违背了OOP原则吗?我很疑惑!
class Person ( var name : String, var age : Int) {
// putting main here
fun main(args : Array<String>) {
val person = Person("Neek", 34)
println("my name is ${person.name}")
println("my name is ${person.age}")
}
}
Run Code Online (Sandbox Code Playgroud)
尝试在类中包含 main() ,我收到以下错误。
warning: parameter 'args' is never used
fun main(args : Array<String>) {
no main manifest attribute
Run Code Online (Sandbox Code Playgroud)
cut*_*iko 12
您可以在 Kotlin 类上编写该main方法,它必须位于companion object
class SuperCoolProgram {
companion object {
@JvmStatic
fun main(args: Array<String>) {
println("Hello Super Cool Program")
}
}
}
Run Code Online (Sandbox Code Playgroud)
静态方法只能写在里面,companion object因为它是唯一的静态方法
Kotlin 作为一种语言并不强制您采用 OOP。Java 是唯一真正让您将所做的一切都封装在类中的 Java 之一。
实际上,您可以在 Kotlin 中跨多个不同文件在文件级别编写所有代码。无需上课。
如果您反编译代码并查看它,您声明的文件中发生了什么
fun main(args: Array<String>) {..}
Run Code Online (Sandbox Code Playgroud)
是它被包装在一个与其所在文件同名的类中。
如果您在名为 Foo.kt 的文件中包含上述代码,那么这就是实际生成的内容
class FooKt {
public static void main(String[] args) { }
}
Run Code Online (Sandbox Code Playgroud)
其中类的名称是文件名+“Kt”
| 归档时间: |
|
| 查看次数: |
6235 次 |
| 最近记录: |