2.privite私有变量的意义

博客介绍了接口和私有变量的特性。接口以公开形式让他人访问和修改,用户依赖接口而非具体实现,修改实现不影响使用;私有变量只能在本类函数中调用引用,其他地方不能调用和修改。

把可以让别人访问和修改的,以接口的形式公开,接口的好处在于,别人依赖你的接口,而不是依赖你的具体实现,那么修改了接口的实现,不影响用户使用接口。私有变量是只能被本类之中的函数调用引用的成员,在其他地方不能被调用和修改。

转载于:https://www.cnblogs.com/niconotine/p/10891110.html

在 Kotlin 中,`private` 修饰符用于限制声明的可见性,使其仅在声明它的同一文件内可见。这一特性与 Java 的 `private` 有所不同,后者限制成员仅在声明它的类内部可见,而 Kotlin 中的 `private` 可见性可以应用于类、接口、函数、属性等,并且其作用范围取决于声明的位置。 ### 文件级别 `private` 如果一个声明位于一个文件的顶层(top-level),使用 `private` 修饰符意味着该声明只能在该文件中访问。例如: ```kotlin // File: Example.kt private class PrivateClass { // 可以被同一文件中的其他代码访问 } class PublicClass { fun usePrivateClass() { val instance = PrivateClass() // 合法 } } ``` 在上述代码中,`PrivateClass` 仅在同一文件中可见,其他文件无法访问它。 ### 类内部 `private` 当 `private` 用于类成员(如属性或方法)时,它表示该成员仅在声明它的类内部可见,外部无法访问。例如: ```kotlin class User { private val secret = "123456" fun revealSecret() { println(secret) // 合法 } } fun main() { val user = User() user.revealSecret() // 合法 // user.secret // 非法:无法访问 private 属性 } ``` 在上面的代码中,`secret` 属性只能在 `User` 类内部访问,外部代码无法直接读取该属性[^1]。 ### 包内部 `private` 在 Kotlin 中,`private` 修饰符不能用于限制包级别的访问,因为 Kotlin 没有类似于 Java 的默认包可见性。如果不使用任何修饰符,则默认为 `public`,表示该声明可在任何地方访问。如果需要限制访问到同一模块(module)内,可以使用 `internal` 修饰符,而不是 `private`。 ### 嵌套类和内部类的 `private` `private` 修饰符也可以用于嵌套类或内部类,限制其仅在外部类中访问。例如: ```kotlin class Outer { private class PrivateNestedClass { // 只能在 Outer 类内部访问 } fun createInstance() { val instance = PrivateNestedClass() // 合法 } } // 非法:无法从外部访问 PrivateNestedClass // val nested = Outer.PrivateNestedClass() ``` 在上述代码中,`PrivateNestedClass` 是 `Outer` 类的私有嵌套类,只能在 `Outer` 类内部实例化。 ### 函数和属性的 `private` 函数和属性也可以使用 `private` 修饰符,以限制其仅在声明它的类或文件中可见。例如: ```kotlin class Counter { private var count = 0 fun increment() { count++ } fun getCount(): Int { return count } } fun main() { val counter = Counter() counter.increment() println(counter.getCount()) // 合法 // counter.count // 非法:无法访问 private 属性 } ``` 在上面的代码中,`count` 属性被标记为 `private`,因此外部代码无法直接访问它,只能通过公开的方法(如 `increment` 和 `getCount`)间接操作。 ### 总结 - `private` 修饰符用于限制声明的可见性。 - 在文件顶层使用 `private`,声明仅在同一文件内可见。 - 在类中使用 `private`,声明仅在该类内部可见。 - `private` 不支持包级别的限制,Kotlin 默认为 `public`。 - `private` 可用于类、函数、属性、嵌套类等。 通过合理使用 `private` 修饰符,可以有效控制代码的可见性,增强封装性和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值