Kotlin 进阶之路5 类的使用

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
    原文作者:香沙小熊
    原文地址: https://www.jianshu.com/p/8296c20a077c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞