Kotlin教程:可见性修饰符及示例

2020-04-2311:30:08编程语言入门到精通Comments1,462 views字数 1566阅读模式

Kotlin中的可见性修饰符是用于限制应用程序中的类,接口,方法和属性使用的关键字。 这些修饰符用于多个位置,例如:类声明或方法体。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18298.html

在Kotlin中,可见性修饰符分为四种不同的类型:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18298.html

  • public
  • protected
  • internal
  • private

1. public 修饰符

可以从项目的任何位置访问public修饰符。 它是Kotlin中的默认修饰符。 如果没有使用任何访问修饰符指定任何类,接口等,则在public范围中使用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18298.html

public class Example{
}
class Demo{
}
public fun hello()
fun demo()
public val x = 5
val y = 10
Kotlin

所有public声明都可以放在文件的顶部。 如果未指定类的成员,则默认为public文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18298.html

2. protected 修饰符

类或接口使用protected修饰符仅允许对其类或子类进行可见性。 除非明确更改,否则子类中的protected声明在被重写时也是protected修饰符。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18298.html

open class Base{  
    protected val i = 0  
}  

class Derived : Base(){  

    fun getValue() : Int  
    {  
        return i  
    }  
}
Kotlin

在Kotlin中,protected修饰符不能在顶层声明。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18298.html

覆盖protected的类型文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18298.html

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修饰符使字段仅在实现它的模块内可见。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18298.html

internal class Example{  
    internal val x = 5  
    internal fun getValue(){  

    }  
}  
internal val y = 10
Kotlin

在上面,所有字段都声明为internal,只能在实现它们的模块内部访问。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18298.html

4. private 修饰符

private修饰符允许声明仅在声明属性,字段等的块内可访问。 private修饰符声明不允许访问范围外部。可以在该特定文件中访问私有包。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18298.html

private class Example {  
    private val x = 1  
     private valdoSomething() {  
    }  
}
Kotlin

在上面的类示例中,val x和函数doSomthing()声明为private。 可以从同一个源文件访问类Example,可以在Example类中访问val xfun doSomthing()文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18298.html

可见性修饰符示例

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<String>) {
    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文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18298.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18298.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/18298.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定