- Kotlin入门笔记一:方法、变量、类
- Kotlin入门笔记二:when、for、in
- Kotlin入门笔记三:可空类型
- Kotlin入门笔记四:集合
- Kotlin入门笔记五:可见修饰符
- Kotlin入门笔记六:Lambda语法
- Kotlin入门笔记七:Lambda之引用
- Kotlin入门笔记八:Lambda和序列
伴随着国庆小长假的结束,想必大家都已经平复了自己的心情,投入到工作和学习当中,距离2018年元旦还有84天,距离春节还有119天,不急不躁,耐心等待。言归正传,笔者今天给大家带来Kotlin中的修饰符。
可见性修饰符
在Java中,对于一个类默认是包私有,但是在Kotlin中,并没有对包私有有实质性的定义。Kotlin中除了Private
、Public
、Protect
三种修饰符之外,还提供了Internal
这个修饰符,用于Kotlin的模块,对于Kotlin中的模块相当于Android程序中的一个Module,Internal
修饰的方法只能在同模块中调用。这在Java中是没有的。
首先我们来回顾下Java中四中修饰符的可见范围:
- public:任何地方,都可以通过该类的对象调用;
- private:只能在该类中被调用;
- protected:只能在该类或者改子类、同一包下被调用;
- 无修饰符(Java默认):可以在该类和同一包下被调用。它和protected是不一样的,千万别混淆了。
回忆了Java 的四种之后,我们来看看Kotlin中这四个修饰符的可见范围:
修饰符 | 类成员 | 顶层声明 |
---|---|---|
public(默认) | 所有地方可见 | 所有地方可见 |
internal | 模块中可见 | 模块中可见 |
protect | 子类中可见 | --- |
private | 同类中可见 | 同文件中可见 |
笔者通过一个demo来带大家详细理解下:
创建一个modifier
包,声明了一个MyModifier
类,里面分别有四种修饰符修饰的变量:
这是demo结构:
MyModifier
类:
package modifier
open class MyModifier{
private val a=1
protected val b=2
val c=3
internal val d=4
private val modifier = MyModifier()
fun printModifier() {
println(modifier.a)
println(modifier.b)
println(modifier.c)
println(modifier.d)
}
}
然后在外层MyPrivate
调用看看:
import modifier.MyModifier
class MyPrivate {
private val modifier: MyModifier = MyModifier()
fun printModifier() {
println(modifier.c)
println(modifier.d)
}
}
可以明显的看到,在MyModifier
本类中,无论是什么修饰符修饰的变量,都可以被调用到,然而在MyPrivate类中只有被public
和internal
修饰的变量才可以被调用。看到这里,笔者希望大家可以动手去码一下其它的情况,这样才能深刻的理解这四种修饰符的具体含义。
这期很简短,但是内容却不是很容易理解,笔者还是希望大家能够自己动手码一遍,然后静下心来好好体验下这四个修饰符的相同和不同之处,在安全性方面有着很高的要求。
这期结束后,不知道大家对Kotlin一些基本语法是否有了一定的掌握,下期笔者将带着大家进入Kotlin中Lambda世界,关于Lambda将分三份笔记介绍。
写在最后
每个人不是天生就强大,你若不努力,如何证明自己,加油!
Thank You!
--Taonce
如果你觉得这篇文章对你有所帮助,那么就动动小手指,长按下方的二维码,关注一波吧~~