android kotlin 基础复习 class类

1、类,学过oop的小伙伴都不陌生。

2、新建Person0.kt

复制代码
import java.util.*

class Person0 constructor(firstName: String) {
//constructor 可以删除
    init {
        println("FirstName is $firstName")
    }
    var lastName: String = "zhang"
        get() = field.uppercase(Locale.getDefault())   // 将变量赋值后转换为大写
        //Redundant setter:默认
        set(value){
            field = value;
        }

    var no: Int = 100
        //Redundant get:默认
        get() = field                // 后端变量
        set(value) {
            if (value < 10) {       // 如果传入的值小于 10 返回该值
                field = value
            } else {
                field = -1         // 如果传入的值大于等于 10 返回 -1
            }
        }

    fun msgInfo(): String {
        println("我是类的函数")
        return "finish"
    }
}

新建文件ClassObjectTest.kt

复制代码
fun main(args: Array<String>) {
    var person: Person0 = Person0("蒋")

    person.lastName = "wang"

    println("lastName:${person.lastName}")

    person.no = 9
    println("no:${person.no}")

    person.no = 20
    println("no:${person.no}")

    println(person.msgInfo())
}

3、输出

4、说明:

  • val:只读属性 默认get
  • var:可读可写属性 默认get ,set
  • get,set方法,如果没有逻辑变化,可以直接省略不写,否则就是冗余代码。
  • class名后面可以直接跟上(参数),用于传构造函数的参数,初始化。
  • class函数可以直接调用,但不能定义与属性一致的方法,否则会报错。
相关推荐
大炮筒5 小时前
COCOS2DX4.0CPPWIN移植安卓踩坑总结
android
qq_422828627 小时前
android图形学之SurfaceControl和Surface的关系 五
android·开发语言·python
tongyiixiaohuang8 小时前
轻易云平台助力快麦数据入库MySQL
android·数据库·mysql
JohnnyDeng9411 小时前
Android 包体积优化:R8/ProGuard 深度配置
android
qq_4523962311 小时前
第六篇:《JMeter逻辑控制器:循环、条件和交替执行》
android·java·jmeter
高林雨露12 小时前
kotlin by 和 = 的区别在于【属性委托】和直【接赋值】的差异
kotlin
cwzqf13 小时前
Jectpack Compose项目组件代码分享(1):分页加载组件
android
@北海怪兽13 小时前
SQL常见函数整理 _ STRING_AGG()
android·数据库·sql
鹏晨互联14 小时前
【Compose vs XML:边框内外间距的实现对比】
android·xml
Android系统攻城狮15 小时前
Android tinyalsa深度解析之pcm_plugin_write调用流程与实战(一百七十九)
android·pcm·tinyalsa·android16·音频进阶·android音频进阶