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