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

推荐阅读更多精彩内容

  • 《Kotlin极简教程》 点击这里 > 去京东商城购买阅读 点击这里 > 去天猫商城购买阅读 正式预售: 《 ...
    一个会写诗的程序员阅读 1,519评论 4 16
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 140,017评论 20 594
  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    橘之缘之空阅读 18,311评论 9 107
  • 面向对象编程(OOP) 在前面的章节中,我们学习了Kotlin的语言基础知识、类型系统、集合类以及泛型相关的知识。...
    Tenderness4阅读 1,652评论 0 4
  • 一家长说期待和我的见面,我的回复:其实我也是在期待中有点压力的,因为毕竟我们不是相遇在了最初,我也不知道能把孩子带...
    Michelle宁阅读 26评论 0 0