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!
相关推荐
拾光师17 小时前
Hadoop 三种运行模式:从单机调试到生产集群,一路搭过来
后端
小闫BI设源码17 小时前
Elasticsearch面试必看:如何让客户端精准选择节点高效执行请求?
java·elasticsearch·面试宝典·深入解析
摇滚侠17 小时前
《SpringBoot 3:入门与应用实战》第 5 章 使用 Spring Boot 阅读笔记 9
java·spring boot·笔记
进阶的小名17 小时前
Spring AI 2.0 探索:多 OpenAI-Compatible 模型接入,以及下一代 Session 记忆管理
java·人工智能·后端·gpt·spring·ai·chatgpt
卷无止境17 小时前
FastAPI 的 Metadata 到底是什么,又牵动了哪些核心概念
后端·python
卷无止境17 小时前
FastAPI 调试实战,从断点到生产环境的排错心法
后端·python
敢敢のwings18 小时前
智元 GO-2 与 AgiBot-World 深度解读
开发语言·后端·golang
yaoxin52112318 小时前
503. Java 反射 - 编写 ServiceFactory 类
java·开发语言·python
考虑考虑18 小时前
Java三元表达式注意
java·后端·java ee
stark张宇19 小时前
Go语言runtime全景图:从编译到GC,带你彻底吃透Go的底层血脉
后端·go