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!
相关推荐
rannn_1112 分钟前
JVM 面试题:类加载过程详解(附高频考点)
java·jvm·后端
程序猿乐锅4 小时前
从0-1一文详解RabbitMQ
java·分布式·后端·中间件·rabbitmq·ruby
考虑考虑7 小时前
JDK26中的List.ofLazy()
java·后端·java ee
小蒜学长7 小时前
基于SpringBoot的公寓报修管理系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·公寓报修管理系统·多角色协同
for_ever_love__7 小时前
MySQL 主从复制讲透:binlog 原理、搭建步骤与读写分离
java·数据库·mysql·binlog·读写分离·原理·主从复制
云浪7 小时前
Go源码分析:搞懂 Go 是如何实现堆的
后端·go·源码阅读
不会就选b9 小时前
Linux之TCP理论<1>
linux·运维·服务器
alexhilton9 小时前
模块化Jetpack Compose架构
android·kotlin·android jetpack
小π军10 小时前
操作系统面试题
java·linux·服务器