首先看下java的
在java中最容易混淆的访问权限就是protected和default
先看看所有的访问权限
总结下面三条:
1、在同一个包中,所有的类都能够访问某一个类中所有非private权限的方法或者属性。
2、一个包中的类不能通过继承访问另一个包中default权限的方法或者属性。换言之,子类在同一个包中可以访问default权限的方法或属性,子类不在同一个包中则不可以。
3、在不同包中子类是不能通过父类的实例访问protected权限的方法或者变量的。
到了重点了。。kotlin和java对比
kotlin 默认就是public。
然后多出一个internal 模块内可见。就是对当前模块内是public 但是对外就是private了 也算是新特性。
跟java 混编的时候容易出错。暂时不建议使用它
下面简单的来下代码介绍
package com.yzdzy.kotlin.chapter4
class House
class Flower
class Countyard{
// 默认public c++默认是private java 默认是protected kotlin多出一个 internal 工程(model)内可见
val house=House()
private val flower=Flower()
}
class ForbiddenCity{
internal val houses= arrayOf(House(),House(),House())
val flowers=arrayOf(Flower(),Flower(),Flower())
}
fun main(args: Array<String>) {
val countyard=Countyard()
val fc=ForbiddenCity()
//private无法直接被其他的类访问,public可以。
countyard.house
println(fc.flowers)
}