
嵌套类
一个类只对另一个类有用,就使用嵌套类
数据类
用来存储数据,提供了个性的tostring实现,==符号默认情况下比较对象就是比较他们的引用值,数据类则比较属性值,数据类提供了equals和hashCode的个性化实现
提供了copy函数,copy的时候次构造函数不执行
自带结构申明
使用数据类的条件:
枚举类
枚举是一个类
和java的枚举有很大差别:
枚举里可以定义函数、属性
密封类
fun main() {val qualified = LicenseStatus.Qualified("4534i9325")val unQualified = LicenseStatus.UnQualifiedval learning = LicenseStatus.Learningprintln(Driver(qualified).check())println(Driver(unQualified).check())println(Driver(learning).check())}sealed class LicenseStatus {object UnQualified : LicenseStatus()object Learning : LicenseStatus()class Qualified(val lisenceId: String) : LicenseStatus()}class Driver(var status: LicenseStatus) {fun check(): String {return when (status) {is LicenseStatus.Learning -> "learning"is LicenseStatus.Qualified -> "Qualified ${(this.status as LicenseStatus.Qualified).lisenceId}"LicenseStatus.UnQualified -> "unQulified"}}}
