Kotlin基础-类、属性、方法


/* * 定义:class 类名 constructor(属性列表){更多的属性和方法} * * 构造器:用来设置类的新实例的初始化 *open:被继承的类或属性关键字 * * */ open class Chinese constructor(var sex: Boolean,var region:String){ //普通属性,与变量定义相似
   protected open var skin="yellow"
//组合属性,由其他属性计算而来(get)
 val avgLife: Double get() { when (this.region) { "sh" -> { return 82.4 } "ah" -> { return 77.8 } else -> { return 73.4 } } //  } //组合属性可以影响其他属性(set,可选),this代表实例
 var avg :Int get() { when (this.region) { "sh" -> { return 4900 } "ah" -> { return 3200 } else -> { return  3500 } } } set(value) { when (value) { in 4500..Int.MAX_VALUE -> { this.region="sh" } in 2800..3500->{ this.region="ah" } else -> { this.region="other" } } } //方法:
 open fun cook(){ val menu= arrayOf("青椒肉丝","番茄鸡蛋","紫菜汤") val desc=menu.reduce { s1, s2 ->s1+","+s2  }//连接
        print("我会${desc}")//---->>我会青椒肉丝,番茄鸡蛋,紫菜汤
 } } //继承
class  Shanghair(sex :Boolean,region: String="sh"): Chinese(sex,region ){ //子类中的属性
    var dialect="上海话"
    //属性覆盖
    override var skin="上海黄" } class Sichuan(sex: Boolean,region: String):Chinese(sex,region){ var dialect="四川话" override var skin="四川话"

    //覆盖方法
 override fun cook(){ super.cook()//继承父类的方法
        val menu= arrayOf("麻婆豆腐","烤鱼") val desc=menu.reduce{s1,s2->s1+","+s2} print("我会${desc}")//我会麻婆豆腐,烤鱼
 } } fun main(args: Array<String>) { //实例化一个类
    val yaoming=Shanghair(true) yaoming.avg=3000 println(yaoming.region)//-->>ah
    print(yaoming.dialect)//--->>上海话
 yaoming.cook() val guojinming=Sichuan(true,"sc") guojinming.cook() }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM