Kotlin 进阶之路5 类的使用
2018-05-07 本文已影响16人
香沙小熊
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