Kotlin
中的可见性修饰符是用于限制应用程序中的类,接口,方法和属性使用的关键字。 这些修饰符用于多个位置,例如:类声明或方法体。
在Kotlin中,可见性修饰符分为四种不同的类型:
public
protected
internal
private
1. public 修饰符
可以从项目的任何位置访问public
修饰符。 它是Kotlin中的默认修饰符。 如果没有使用任何访问修饰符指定任何类,接口等,则在public
范围中使用。
public class Example{
}
class Demo{
}
public fun hello()
fun demo()
public val x = 5
val y = 10
Kotlin
所有public
声明都可以放在文件的顶部。 如果未指定类的成员,则默认为public
。
2. protected 修饰符
类或接口使用protected
修饰符仅允许对其类或子类进行可见性。 除非明确更改,否则子类中的protected
声明在被重写时也是protected
修饰符。
open class Base{
protected val i = 0
}
class Derived : Base(){
fun getValue() : Int
{
return i
}
}
Kotlin
在Kotlin中,protected
修饰符不能在顶层声明。
覆盖protected的类型
open class Base{
open protected val i = 5
}
class Another : Base(){
fun getValue() : Int
{
return i
}
override val i =10
}
Kotlin
3. internal 修饰符
internal
修饰符是在Kotlin中新添加的,它在Java中不可用。 声明要将字段标记为internal
字段。internal
修饰符使字段仅在实现它的模块内可见。
internal class Example{
internal val x = 5
internal fun getValue(){
}
}
internal val y = 10
Kotlin
在上面,所有字段都声明为internal
,只能在实现它们的模块内部访问。
4. private 修饰符
private
修饰符允许声明仅在声明属性,字段等的块内可访问。 private
修饰符声明不允许访问范围外部。可以在该特定文件中访问私有包。
private class Example {
private val x = 1
private valdoSomething() {
}
}
Kotlin
在上面的类示例中,val x
和函数doSomthing()
声明为private
。 可以从同一个源文件访问类Example
,可以在Example
类中访问val x
和fun doSomthing()
。
可见性修饰符示例
open class Base() {
var a = 1 // 默认为 public
private var b = 2 // 基类 private
protected open val c = 3 // Base和Derived类可见
internal val d = 4 // 在同一个模块中可见
protected fun e() { } // Base和Derived类可见
}
class Derived: Base() {
// a, c, d, 和 e() 基类可见
// b 是不可见
override val c = 9 // c 为 protected
}
fun main(args: Array) {
val base = Base()
// base.a 和 base.d 可见
// base.b, base.c 和 base.e() 不可见
val derived = Derived()
// derived.c 不可见
}
//原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/kotlin/kotlin-visibility-modifier.html#article-start