Kotlin 面向对象 - Kotlin 类变量与类方法

类变量

1、伴生对象
  • 在类内部声明,用 companion 标记,类似于 Java 的静态成员
kotlin 复制代码
class MyClass {
    companion object {
        val TAG: String = "MyClass"
        var count: Int = 0
    }
}
kotlin 复制代码
println(MyClass.TAG)

println(MyClass.count)
MyClass.count = 10
println(MyClass.count)
复制代码
# 输出结果

MyClass
0
10
2、顶层属性
  • 直接在 Kotlin 文件中定义,不放在任何类内
kotlin 复制代码
const val APP_NAME = "MyApp"

var globalCounter = 0
kotlin 复制代码
println(APP_NAME)

println(globalCounter)
globalCounter++
println(globalCounter)
复制代码
# 输出结果

MyApp
0
1

类方法

1、伴生对象
kotlin 复制代码
class Utils {
    companion object {
        fun formatDate(): String {
            return SimpleDateFormat(
                "yyyy-MM-dd HH:mm:ss",
                Locale.getDefault()
            ).format(System.currentTimeMillis())
        }

        fun doubleValue(x: Int): Int = x * 2
    }
}
kotlin 复制代码
val formattedDate = Utils.formatDate()
println(formattedDate)

val doubleValue = Utils.doubleValue(5)
println(doubleValue)
复制代码
# 输出结果

2026-08-05 17:28:35
10
2、顶层属性
kotlin 复制代码
fun isEmailValid(email: String): Boolean {
    return email.contains("@")
}

fun greet(name: String): String = "Hello, $name!"
kotlin 复制代码
val result = isEmailValid("test@example.com")
println(result)

val greetResult = greet("Kotlin")
println(greetResult)
复制代码
# 输出结果

true
Hello, Kotlin!
相关推荐
SimonKing1 小时前
开源免费+AI运维,Netcatty快速上手教程
java·后端·程序员
plainGeekDev1 小时前
Robolectric → 分层测试:测试策略重构
android·java·kotlin
plainGeekDev1 小时前
Instrumentation → Compose Testing
android·java·kotlin
CodeSheep1 小时前
FFmpeg 9.0正式发布:代号“Lei”,以纪念中国开发者雷霄骅
前端·后端·程序员
snow@li1 小时前
MapStruct:高性能Bean映射框架全景深入梳理
java
IT_陈寒1 小时前
小心!Java里的这个空指针问题绝对坑过你
前端·人工智能·后端
木由里予1 小时前
TEE(Trusted Execution Environment)技术详解
java·linux·开发语言·网络·嵌入式硬件·android-studio
lemon_sjdk1 小时前
Spring 容器与 Bean 深度解析:从概念到实践
java·网络·spring·webflux
铁皮饭盒1 小时前
阿里ASR语音转文字,用JS模拟微信
前端·javascript·后端