kotlin 设置默认参数而不更改超类

default parameter
class VampyreKing(val name: String) : Vampyre(name) {
  init {
    hitPoints = 140
  }
}

kotlin 自定义类对象的数组

array
val inventory = ArrayList<Loot>()

kotlin for循环

for loop
for (item in inventory) {
  println(item)
}

kotlin 覆盖println

override print
class Loot(val name: String, val type: LootType, val value: Double) {
    override fun toString(): String {
        return "$name is $type and is worth $value"
    }
}

kotlin 枚举/分类类型

enum
enum class LootType {
    POTION, RING, ARMOR
}

kotlin Kotlin类和对象

Kotlin类和对象

classes_and_objects_6.kt
fun main(args: Array<String>) {
    val calculator = Calculator(5600)
    val anotherCal = Calculator(2300, 7800)
}

class Calculator(val firstVal: Int) {
    var sum: Int = 0
    init {
        sum += firstVal
    }
    val secondVal = 400
    init {
        sum += secondVal
    }
    val thirdVal = 600
    init {
        sum += thirdVal
        println(sum)
    }

    constructor(firstVal: Int, secondVal: Int): this(firstVal) {
        sum += secondVal
        println(sum)
    }
}

kotlin Kotlin类和对象

Kotlin类和对象

classes_and_objects_5.kt
fun main(args: Array<String>) {
    val calculator = Calculator(5600)
}

class Calculator(val firstVal: Int) {
    var sum: Int = 0
    init {
        sum += firstVal
    }
    val secondVal = 400
    init {
        sum += secondVal
    }
    val thirdVal = 600
    init {
        sum += thirdVal
        println(sum)
    }
}

kotlin Kotlin类和对象

Kotlin类和对象

classes_and_objects_4.kt
fun main(args: Array<String>) {
    val primaryClass = PrimaryClass("John")
}

class PrimaryClass(val firstName: String) {
    val secondVal: String = "Hello from Kotlin"
    init {
        first()
        println("Second Val $secondVal")
    }

    val thirdVal: String = "Hello from Kotlin Again"
    init {
        second()
        println("Third Val $thirdVal")
    }

    fun first() {
        println("Hello from First")
    }

    fun second() {
        println("Hello from Second")
    }
}

kotlin Kotlin类和对象

Kotlin类和对象

classes_and_objects_3.kt
fun main(args: Array<String>) {
    val second = Second("Aung Aung", "Hledan")
    println(second.name)
    println(second.address)
}
open class First(val name: String)
class Second(name: String, val address: String) : First(name)

kotlin Kotlin类和对象2

Kotlin类和对象2

classes_and_objects_2.kt
fun main(args: Array<String>) {
    val myTest = MyTest("Maung")
    val anotherTest = MyTest("Maung", "Maung")
    myTest.testCall()
    anotherTest.testAnotherCall()
}

class MyTest(val firstName: String) {
    var lastName: String? = null
    constructor(firstName: String, lastName: String): this(firstName) {
        this.lastName = lastName
    }
    fun testCall() {
        println("First Name : $firstName")
    }
    fun testAnotherCall() {
        println("Name : $firstName $lastName")
    }
}