Kotlin 進階之路 目錄
1.嵌套類
/**
*類中可以嵌套其他類
*
*/
//新聞類
class News{
//默認地區
private var lang ="cn"
//新聞分類:嵌套類,與主類關系并不是十分密切,只是形式上的一種合作
class Category{
var list = arrayOf("推薦","視頻","熱點","科技","美女")
val listDesc =list.joinToString()
}
//內部類:新聞語種,通常用于不直接對外的類,為主類服務
inner class Language{
fun changeRegion(newRegion: String){
//內部類可以訪問主類的屬性
lang =newRegion
println("可以查看$newRegion"+ "地區新聞")
}
}
}
fun main(args: Array<String>) {
//顯示中國地區的新聞列表
println(News.Category().listDesc)
//更改新聞地區,內部類必須以來主類的實例,加上自身的實例才能使用
News().Language().changeRegion("us")
}
推薦, 視頻, 熱點, 科技, 美女
可以查看us地區新聞
2.數據類
/**
*類中可以嵌套其他類
*
*/
//新聞類
class News{
//默認地區
private var lang ="cn"
//新聞分類:嵌套類,與主類關系并不是十分密切,只是形式上的一種合作
class Category{
var list = arrayOf("推薦","視頻","熱點","科技","美女")
val listDesc =list.joinToString()
}
//內部類:新聞語種,通常用于不直接對外的類,為主類服務
inner class Language{
fun changeRegion(newRegion: String){
//內部類可以訪問主類的屬性
lang =newRegion
println("可以查看$newRegion"+ "地區新聞")
}
}
}
fun main(args: Array<String>) {
//顯示中國地區的新聞列表
println(News.Category().listDesc)
//更改新聞地區,內部類必須以來主類的實例,加上自身的實例才能使用
News().Language().changeRegion("us")
}
推薦, 視頻, 熱點, 科技, 美女
可以查看us地區新聞
3.枚舉類
/**
* 枚舉類:有限個類型的列舉
* 其中每一個稱之為枚舉常量(可帶初始值),每一個以逗號分隔
*/
//撲克牌花色
enum class PokerCard{
紅心,方片,梅花,黑桃
}
//衣服尺碼:帶構造器的枚舉類
enum class Size(val height:Int)
{
S(150),M(160),L(170),XL(180),XXL(190)
}
fun main(args: Array<String>) {
// 列舉枚舉類的常量
println(PokerCard.values().joinToString())
//枚舉常量
println(Size.valueOf("XXL").name)
//枚舉常量排序
println(Size.valueOf("XXL").ordinal)
println(Size.values().joinToString { it.name +":"+it.height })
}
紅心, 方片, 梅花, 黑桃
XXL
4
S:150, M:160, L:170, XL:180, XXL:190