Classes and Objects
Companion Object
Call a helper that belongs to a class, not an instance.
companion
A companion object stores functions or values tied to the class name.
Companion Object
CompanionObject.kt
Replay: real traced execution (multi-file project)
class Tax {
companion object {
fun addFee(amount: Int): Int {
return amount + 2
}
}
}
fun main() {
val amount = 8
val total = Tax.addFee(amount)
println("amount=$amount")
println("total=$total")
}
class Tax {
companion object {
fun addFee(amount: Int): Int {
return amount + 2
}
}
}
fun main() {
val amount = 3
val total = Tax.addFee(amount)
println("amount=$amount")
println("total=$total")
}
class Tax {
companion object {
fun addFee(amount: Int): Int {
return amount + 2
}
}
}
fun main() {
val amount = 12
val total = Tax.addFee(amount)
println("amount=$amount")
println("total=$total")
}
amount ← 8
9fun main() {10 val amount→ 8 = 8 //@amount=3, 1211 val total = Tax.addFee(amount8)fun addFee(amount: Int): Int
2companion object {3 fun addFee(amount8: Int): Int {4 return amount8 + 25 }total ← 10
10 val amount = 8 //@amount=3, 1211 val total→ 10 = Tax.addFee(amount8)1213 println("amount=$amount8")14 println("total=$total10")15}outputamount=8 total=10
amount ← 3
9fun main() {10 val amount→ 3 = 311 val total = Tax.addFee(amount3)fun addFee(amount: Int): Int
2companion object {3 fun addFee(amount3: Int): Int {4 return amount3 + 25 }total ← 5
10 val amount = 311 val total→ 5 = Tax.addFee(amount3)1213 println("amount=$amount3")14 println("total=$total5")15}outputamount=3 total=5
amount ← 12
9fun main() {10 val amount→ 12 = 1211 val total = Tax.addFee(amount12)fun addFee(amount: Int): Int
2companion object {3 fun addFee(amount12: Int): Int {4 return amount12 + 25 }total ← 14
10 val amount = 1211 val total→ 14 = Tax.addFee(amount12)1213 println("amount=$amount12")14 println("total=$total14")15}outputamount=12 total=14