为什么myPhone.something1.something()上有红线? -something1-

问题描述 投票:0回答:1
fun main() {
val myPhone = Myphone()
myPhone.phoneOn()
myPhone.onClick()
myPhone.onTouch()
myPhone.openApp()
myPhone.closeApp()
myPhone.brightMax()
myPhone.Something1.something()

}
interface Application {
    var appName: String
    var x1: Int

    fun something()

    fun brightMax() {
        println("Brightness level is on Max!")
    }

    fun openApp() {
        println("$appName is opening!")
    }

    fun phoneOn() {
        println("The phone is ON")
    }

    fun onClick() {
        println("App is running")
    }

    fun closeApp() {
        println("${Myphone.Something1.appName} App is closed!")
    }
}

interface Button {
    val x: Int
    var helloMessage: String

    fun brightMax() {
        println("Brightness is on $x")
    }

    fun phoneOn() {
        println("Power on button was pressed!")
    }

    fun onClick()

    fun onTouch() {
        println("The screen was touched!")
    }
}



class Myphone: Button, Application {
    override fun something() {
        println("Doing something")
    }

    object Something1 : Application {
        override var x1: Int = 100
        override var appName: String = "Instagram"
        override fun something() {
            println("He wants to die!")
        }

    }

    override var x1: Int = 12
    override var appName: String = "Facebook"
    override var x: Int = 100

    override fun phoneOn() {
        super<Application>.phoneOn()
    }

    override fun brightMax() {
        super<Application>.brightMax()
        super<Button>.brightMax()
    }
    override var helloMessage: String = "Hello"

    override fun onClick() {
         super.onClick()
    }
}

我在类内部创建了对象,但无法在主函数中“调用”它。

一旦我这样做,我就不记得该如何解决了。

不要因为代码而怪我。我做了介绍。

在第9行,有错误,为什么? something1在kotlin中有红线。

something1.appName-运行正常吗?

kotlin
1个回答
0
投票

您会收到此错误,因为不建议您通过实例引用访问嵌套对象。使用Myphone.Something1.something()代替myPhone.Something1.something()

© www.soinside.com 2019 - 2024. All rights reserved.