天天看點

kotlin 類及其成員的可見性

一、首先來看一個Kotlin和Java的比較

Kotlin Java 比較

private private 隻有類内部的類和方法可以通路

protected protected 類的子類可見

—— default 相同的包内可以通路

intelnal – 相同的子產品内可以通路

public public 随處可見

二、看一個小小的例子

package net.println.kotlin.chapter4

/**
 * @author:wangdong
 * @description:
 */
class House

class Flower

/**
 * 當類裡面的成員加了private,對外是不可見的
 */
class Countryard{

    private val house =  House()
    private val flower = Flower()
}

/**紫禁城。現在大家都能看*/
class ForbiddenCity{

    val house =  arrayOf(House(), House())
    val flower = arrayOf(Flower(),Flower())
}

fun main(args: Array<String>) {
    val countryard = Countryard()
    //因為Countryard中的成員變量被私有了,下面這樣就無法通路
    //println(countryard.)
    //紫禁城可以通路
    val forbiddenCity = ForbiddenCity()
    println(forbiddenCity.house)
    println(forbiddenCity.flower)
}           

可見性結束