Kotlin基础-对象声明和表达式

/*
* 有时候只是要对某个类进行轻微改造,供临时使用,避免继承
* 对象声明和表达式就很有用
*对面向对象编程的优化,避免一些继承导致的代价过高
* */

//对中国人来说,这个类,可能各省人适合继承
open class China(var name:String){
    open val skin="yellow"

}

fun main(args: Array<String>) {
//但如果外国人入籍,就不适合用继承
    //对象表达式:val 对象名=object:类,接口{属性或方法的override定义}
    val baako= object : China("Baako Zaid") {
        override val skin="black"
    }
    println(baako.skin)

    //纯对象表达式:临时使用,无需继承任何类
    val tempParking=object {
        var x=100
        var y=200
    }
    println(tempParking.x)
    //相当于调用函数
    NetworkRequestManager.register()
//伴生对象的方法,与类关联性强
    IdCard.creat()

}

//对象声明,不能在函数中
//一般用于对其他类的一种使用上的包装
object NetworkRequestManager{
    fun register(){
        print("连接网络中")
    }
}
//伴生对象:一般用于创建一个类的实例的“工厂”方法
//java中的静态属性
class IdCard{
    companion object{
        fun creat() =IdCard();
    }
}

 

posted @ 2017-06-23 17:06  张兮兮  阅读(295)  评论(0编辑  收藏  举报