zoukankan      html  css  js  c++  java
  • 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()
    }
  • 相关阅读:
    如何取消隐藏工作簿,使工作簿可见
    Android小知识总结
    Android内存泄露总结
    Ubuntu 升级VisualBox后无法启动 Kernel driver not installed (rc=-1908)
    Eclipse颜色主题插件:Eclipse Color Theme
    使用Json的注意事项
    android中正确导入第三方jar包
    设计模式--单例模式学习
    比较好的学习网址总结
    二叉树学习总结(Java实现)
  • 原文地址:https://www.cnblogs.com/my334420/p/7070818.html
Copyright © 2011-2022 走看看