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函数可以直接调用,但不能定义与属性一致的方法,否则会报错。
相关推荐
weixin_4038101317 小时前
AI智能体写安卓自动化脚本教程:Cursor/Trae+CLI 实战,自然语言生成代码
android·人工智能·自动化·跨境电商·安卓自动化脚本·多账户运营
呆呆小孩19 小时前
零基础学 MySQL(上):从建库建表到增删改查,一篇搭好 SQL 基础
android·sql·mysql
catchadmin19 小时前
NativePHP v4 让 Blade 构建原生 iOS 与 Android 界面
android·ios·ai·php
FfHUCisI21 小时前
Golang 数据库连接池深度调优
android·数据库·golang
古法安卓1 天前
Android-epoll原理详解
android·java·android studio
字节暗面1 天前
四款 APP 加固强度测评:让 AI 拆了四个包,结果有点出乎意料
android·逆向工程·加固
网安蟹佬霸1 天前
蓝队防御实战:SIEM与SOAR构建安全运营中心(万字详解+实战配置)
android·安全·web安全·网络安全·网安
敢敢のwings1 天前
世界模型与FlashWorld:从“在梦中学习“到秒级3D场景生成
android·学习·3d
Dovis(誓平步青云)1 天前
牛奶不能减成负数:冰箱库存的筛选、去重与不可变更新
android·java·开发语言
Awna1 天前
MySQL 存储空间与索引运维实战:从空间排查到在线扩容
android·运维·mysql