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函数可以直接调用,但不能定义与属性一致的方法,否则会报错。
相关推荐
inmK13 小时前
蓝奏云官方版不好用?蓝云最后一版实测:轻量化 + 不限速(避更新坑) 蓝云、蓝奏云第三方安卓版、蓝云最后一版、蓝奏云无广告管理工具、安卓网盘轻量化 APP
android·工具·网盘工具
giaoho3 小时前
Android 热点开发的相关api总结
android
咖啡の猫5 小时前
Android开发-常用布局
android·gitee
程序员老刘5 小时前
Google突然“变脸“,2026年要给全球开发者上“紧箍咒“?
android·flutter·客户端
Tans55 小时前
Androidx Lifecycle 源码阅读笔记
android·android jetpack·源码阅读
雨白6 小时前
实现双向滑动的 ScalableImageView(下)
android
峥嵘life6 小时前
Android Studio新版本编译release版本apk实现
android·ide·android studio
studyForMokey8 小时前
【Android 消息机制】Handler
android
敲代码的鱼哇8 小时前
跳转原生系统设置插件 支持安卓/iOS/鸿蒙UTS组件
android·ios·harmonyos
翻滚丷大头鱼8 小时前
android View详解—动画
android