Kotlin 主构造函数参数的修饰符

  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是不可以访问的
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文是在学习和使用kotlin时的一些总结与体会,一些代码示例来自于网络或Kotlin官方文档,持续更新... 对...
    竹尘居士阅读 8,585评论 0 8
  • 136.泛型 泛型代码让你可以写出灵活,可重用的函数和类型,它们可以使用任何类型,受你定义的需求的约束。你可以写出...
    无沣阅读 5,418评论 0 4
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 9,395评论 1 10
  • “时间都去哪儿啦,还没好好看看你眼睛就花了,柴米油盐半辈子,满脑子都是哭了笑啦……” 随着歌曲柔美得播放,我的眼睛...
    晴空万里迎朝霞阅读 2,629评论 1 6
  • 余秋雨在《我的文化山河》开篇便提到,人迟早都会经历一次极大的恐惧。余老师悟性好,小时候就感到这种恐惧了,而且是一种...
    马吉克阅读 1,917评论 0 0