欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

Kotlin入门学习教程之可见性修饰符

时间:2022-05-26 08:23:36|栏目:Android代码|点击:

前言

在Kotlin中四种可见性修饰符:private、protected、internal、public,如果没有显示指定修饰符的话,默认可见性是public。

四种修饰符的说明

  • public修饰符表示 公有 。此修饰符的范围最大。当不声明任何修饰符时,系统会默认使用此修饰符。
  • internal修饰符表示 模块 。对于模块的范围在下面会说明。
  • protected修饰符表示 私有`+`子类。值得注意的是,此修饰符不能用于顶层声明,在下面可以看到。
  • private修饰符表示 私有 。此修饰符的范围最小,即可见性范围最低。

1、包场景下的可见性修饰符

package com.iflytek.basekotlin.`class`
//函数、属性、类、对象和接口都可以在顶层声明,即直接在包内  2021/6/22
fun method(){} // 默认为public ,随处可见 2021/6/22
private class ClassA(){} // 只在该文件内可见  2021/6/22
private val classA:ClassA = ClassA() // 此处只能用private,因为ClassA只在该文件内可见,所以其对象也是  2021/6/22
internal interface InterfaceA{} // 只在同模块内可见 2021/6/22
protected var name:String = "" // 错误:Modifier 'protected' is not applicable to 'top level property without backing field or delegate'  2021/6/22
  • 如果不指定任何可见性修饰符,默认为public,这意味着随处可见
  • 如果声明为private,只在声明的文件内可见
  • 如果声明为internal,只在相同的模块内可见
  • protected不适用于顶层声明,即不适用于此场景

2、类内部声明的成员

open class VisibilityDemo{
    private val a = true // 只在该类内部可见  2021/6/22
    protected val b = true // 在类内部和其子类中可见  2021/6/22
    internal val c = true // 能见到类声明的本模块任何客户端都可见  2021/6/22
    val d = true // 能见到类声明的任何客户端都可见  2021/6/22
}


class SubVisibility:VisibilityDemo(){
    fun visible(){
        //println(a) // 不可见  2021/6/22
        println(b) // 可见  2021/6/22
        println(c) // 可见  2021/6/22
        println(d) // 可见  2021/6/22
    }
}


class UnRelated(){
    fun visible(visibilityDemo: VisibilityDemo){
//        println(visibilityDemo.a) // 不可见  2021/6/22
//        println(visibilityDemo.b) // 不可见  2021/6/22
        println(visibilityDemo.c) // 可见  2021/6/22
        println(visibilityDemo.d) // 可见  2021/6/22
    }
}
  • private 只在类内部可见
  • protected 在类及其子类中可见
  • internal 能见到类声明的本模块内可见
  • public 能见到类声明处可见

总结

上一篇:Android集成Flutter

栏    目:Android代码

下一篇:Android录音时获取分贝值的方法代码实例

本文标题:Kotlin入门学习教程之可见性修饰符

本文地址:http://www.codeinn.net/misctech/202896.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有