Kotlin 主建構函式引數的修飾符

weixin_33924312發表於2019-01-16
  1. 不加任何修飾符
    在初始化塊中是可以訪問的,在類內部和類外部都是無法訪問的
class People(name: String) {
    init {
        println("name:$name")
    }

    override fun toString(): String {
        // 提示語法錯誤
        return "People(name:$name)"
    }
}
  1. 加 var/val 修飾符
    在初始化塊中是可以訪問的,在類內部和類外部都是可以訪問的
class People2(var name: String) {
    init {
        println("name:$name")
    }

    override fun toString(): String {
        return "People(name:$name)"
    }
}
  1. 加 public/private/internal 修飾符,會報錯,不支援此語法
// 提示語法錯誤
class People3(private name: String) {
    init {
        println("name:$name")
    }

    override fun toString(): String {
        return "People(name:$name)"
    }
}
  1. 同時新增 public/private/internal var/val 這兩種修飾符
  • 4.1 public var/val
    和不加public,只加var/val是一樣的。
    在初始化塊中是可以訪問的,在類內部和類外部都是可以訪問的
  • 4.2 private var/val
    在初始化塊和類內部是可以訪問的,在類外部是無法訪問的
  • 4.3 internal var/val 同 4.2
    在初始化塊和類內部是可以訪問的,在類外部,在同一個module是可以訪問的,在不同的module是不可以訪問的

相關文章