前言
一、嵌套类
类嵌套在另一个类之内
class Outer {
private val oa = 1
class Nested {
fun foo() = oa //unresolved reference错误
}
}
val demo=Outer.Nested().foo()
二、内部类
类可以使用 inner 关键字来标记, 然后就可以访问外部类(outer class)的成员. 内部类会保存一个引用, 指向外部类的对象实例
class Outer {
private val oa = 1
inner class Inner {
fun foo() = oa //ok
}
}
val demo2=Outer().Inner().foo()
三、枚举类
enum class EColor{
RED,GREEN,BLUE
}
val color=EColor.BLUE
枚举初始化
enum class EColor(val rgb:Int){
RED(0xFF0000), GREEN(0x00FF00), BLUE(0x0000FF)
}
val color=EColor.BLUE
for (a in EColor.values()){
print("$a ")
}
println()
println(EColor.valueOf("BLUE"))
println("name=${color.name} ; ordinal=${color.ordinal};rgb= ${color.rgb}")
println(enumValueOf<EColor>("RED"))
for (a in enumValues<EColor>()){
print("$a ")
}
println()
输出结果
如果给定的名称不能匹配枚举类中定义的任何一个枚举常数值, valueOf() 方法会抛出 IllegalArgumentException 异常.
网友评论