kotlin可见性修饰符

可见性修饰符可以对创建的任何代码设置可见性。

kotlin的可见性修饰符有 public(默认)、private、protected、internal,可以被修饰的有类(包括抽象类)、对象、接口、函数(包括构造函数)、属性

Java包下面的源文件中的顶级代码只有类/接口,但是kotlin中,类/接口、变量、函数都可以作为顶级代码声明在源文件中。

Intellij IDEA 中只有kotlin文件和有多种顶级代码的图标上也有区别:

包或者源文件下的代码可以被public(默认)、private、internal 修饰:

//example.kt
package foo
//源文件或者包中可以定义的顶层声明:类、对象、属性、函数、接口
//包->类
class Example {}
//包->对象
var example: Example = Example()
//包->属性
var name = "Jairus"
//包->函数
internal fun baz() {}
//包->接口
private interface OnClickedListener {}

通过包名调用顶级代码:

foo.baz()
foo.name
foo.example

修饰符可见性:

  • public(可省略):所有地方可见
  • private:同一源文件可见
  • internal:同一模块可见

类/接口

Java 一样,kotlin类/接口 里面可以有属性、函数,可以被 public(默认)、private、protected、internal 修饰。

注意事项:

  • 接口的属性和函数不能被internal修饰
  • 局部变量、函数和类不能被可见性修饰符修饰
  • 父类的 protected 成员被子类覆盖的话,在子类中默认也是 protected
open class Example {
    //类->属性
    var name = "Jairus"
    //类->函数
    private fun baz() {}
    protected fun baz2() {}
    internal fun baz3() {
        //局部变量
        var name = "Jairus"
        //局部函数
        fun baz() {}
        //局部类
        class Example {}
    }
}

interface OnClickedListener {
    //接口->函数
    fun baz() {}
    private fun baz2() {}
}

修饰符可见性:

  • public(可省略):类成员在所有地方可见
  • private:类成员仅在类中可见
  • protected:类成员仅在类和子类中可见
  • internal:类成员对同一模块中可以看见类的内容可见

模块

一个模块是编译在一起的一套kotlin文件,如 Intellij IDEA 模块。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值