Kotlin学历之可见性修饰符

简介: Kotlin学历之可见性修饰符

简述


与java中的修饰符相比,Kotlin中多了一个叫internal,翻译过来是形容词内部,内置的意思。具体为什么会多一个,请看下期!开个玩笑啊- -,还有三个就跟java的用法基本类似了,但也会不同,下面一一讲解。

internal

最关心的放最前面哈,大家肯定在思考,为什么会多这么一个修饰符,意思在哪?仔细回顾了一下之前的东西,突然明白了,在Kotlin中是可以有包级属性的,而java包下面只能是类或者接口等,Kotlin就可以很随意,定义变量、定义类、定义接口、定义函数都可以,具体可以看下面的图,编译器是通过的,再想想protected修饰符,它是内部类或者子类可以访问的修饰符,在Kotlin中就因为有了包级的属性,所以才多了个internal修饰符,为了区别于protected,被internal修饰的类、函数或者接口可以在同一module下访问,还有个特点,如果internal修饰的是类内部的成员呢,那这个成员就成了只有这个类内部能访问的成员,比如private修饰的类,就只能在类的内部访问。

image.png

包级属性

private

同文件内可见。因为包级属性和包级函数会被编译为“文件类”内的静态成员,所以如果用 private 修饰,它们就只在这个文件类里可见,也就是文件内可见。也就是继承后也是看不见的,如图所示,是没有p属性的。这跟java一样,还有就是一等公民,类、对象、接口……(也就是包成员)如果被定义为private,那么它们只会对被定义所在的文件可见

image.png

继承的子类

protected

这个修饰符的存在就是只能修饰类或者接口中的成员上,包级属性是不能修饰的。如图

image.png

修饰包级属性

public

这个修饰符与java最大的不同应该是,它在Kotlin中是默认的,就是你不声明的属性,会默认成为public。

总结


可见性修饰符就先学到这,下期学习伴生对象、数据类以及密封类。

目录
相关文章
|
Java Kotlin
Kotlin学历之内联函数
Kotlin学历之内联函数
101 0
Kotlin学历之内联函数
|
Kotlin
Kotlin学历之导图
Kotlin学历之导图
84 0
Kotlin学历之导图
|
安全 Android开发 Kotlin
Kotlin学历之Android MVP架构实战
Kotlin学历之Android MVP架构实战
151 0
Kotlin学历之Android MVP架构实战
|
安全 Java 编译器
Kotlin学历之空安全
Kotlin学历之空安全
89 0
Kotlin学历之空安全
|
JSON 安全 Java
Kotlin学历之委托属性
Kotlin学历之委托属性
119 0
Kotlin学历之委托属性
|
Java Kotlin
Kotlin学历之扩展与委托
Kotlin学历之扩展与委托
112 0
Kotlin学历之扩展与委托
|
Java 编译器 Kotlin
Kotlin学历之抽象类与接口
Kotlin学历之抽象类与接口
115 0
Kotlin学历之抽象类与接口
|
IDE Java 编译器
从 internal 修饰符一探 kotlin 的可见性控制
从 internal 修饰符一探 kotlin 的可见性控制
从 internal 修饰符一探 kotlin 的可见性控制
|
算法 Java 编译器
Kotlin学历之函数与Lambda表达式
Kotlin学历之函数与Lambda表达式
99 0
|
Java C# Kotlin
Kotlin学历之特殊类
Kotlin学历之特殊类
92 0