Kotlin 进阶之路5 类的使用

作者: 香沙小熊 | 来源:发表于2018-05-07 16:07 被阅读16次

    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
    

    相关文章

      网友评论

        本文标题:Kotlin 进阶之路5 类的使用

        本文链接:https://www.haomeiwen.com/subject/pihmrftx.html