/*2.7可见性修饰符
*设定类本身及其属性,方法,构造器
* 以及接口和对象的对外访问权限,即“可见性”
*private 私有:仅当前类可见。最小的可见性
* protected 保护 :仅子类可见
* internal 内部:当前模块可见
* public 公开 :默认 对外完全可见
*
*
* 2.8嵌套类
* 类中可以嵌套其他类
*
*
* */
//新闻类
class News{
//默认地区
private var lang="cn"
//新闻分类:嵌套类,与主类关系并不是十分密切,主从关系
class Category{
var list= arrayOf("推荐","娱乐","体育","科技")
val listDesc=list.joinToString ()
}
//内部类:新闻语种 通常用于不直接对外的类,为主类服务的
inner class Language{
fun changeRegion(newRegion :String){
//内部类可以直接访问主类的属性
lang=newRegion
print("现在可以查看${newRegion}的新闻")
}
}
}
fun main(args: Array<String>) {
//显示中国地区的新闻列表
print(News.Category().listDesc)
//更改新闻地区:内部类必须依赖主类的实例,加上自身的实例,才能使用
News().Language().changeRegion("us")
}