Kotlin 기본 문법 따라하기
Classes and Inheritance - Kotlin Programming Language
kotlinlang.org
package com.kotlintest.test
import com.sun.tools.doclets.internal.toolkit.util.DocPath.parent
class MainClzClass() {
fun main() {
val person1 = Person("kim");
println("person1 : ${person1.name} ${person1.age} ${person1.birthday}")
val person2 = Person("lee", 10);
println("person2 : ${person2.name} ${person2.age} ${person2.birthday}")
val person3 = Person("hong", 15, "080912");
println("person3 : ${person3.name} ${person3.age} ${person3.birthday}")
val initOrderDemo = InitOrderDemo("ssing")
println("Customer.customerKey : ${Customer("ssing").customerKey}")
val constructors = Constructors(1)
val derived = Derived("ssing", "hong")
}
}
class Empty
class Person {
var name: String? = null
var age: Int? = null
var birthday: String? = null
constructor(name: String) {
this.name = name
}
constructor(name: String, age: Int) : this(name) {
this.age = age
}
constructor(name: String, age: Int, birthday: String) : this(name, age) {
this.birthday = birthday
}
}
class InitOrderDemo(name: String) {
val firstProperty = "First property: $name".also(::println)
init {
println("First initalizer block that prints ${name}")
}
val secondProperty = "Second property: ${name.length}".also(::println)
init {
println("Second initializer block that prints ${name.length}")
}
}
class Customer(name: String) {
val customerKey = name.toUpperCase()
}
class PersonDetail {
var children: MutableList<PersonDetail> = mutableListOf<PersonDetail>();
constructor(personDetail: PersonDetail) {
personDetail.children.add(this)
}
}
class Constructors {
init {
println("Init block")
}
constructor(i: Int) {
println("Constructor")
}
}
open class Shape {
open val vertexCount: Int = 0
}
class Ractangle() : Shape() {
override val vertexCount: Int = 4
}
open class Base(val name: String) {
init {
println("Initialzing base")
}
open val size: Int = name.length.also { println("Initializing size in Base: $it") }
}
class Derived(
name: String,
val lastName: String) : Base(name.capitalize().also { println("Argument for Base $it") }) {
init {
println("Initializing Dervied")
}
override val size: Int = (super.size + lastName.length).also { println("Initializing size in Derived: $it") }
}
person1 : kim null null
person2 : lee 10 null
person3 : hong 15 080912
First property: ssing
First initalizer block that prints ssing
Second property: 5
Second initializer block that prints 5
Customer.customerKey : SSING
Init block
Constructor
Argument for Base Ssing
Initialzing base
Initializing size in Base: 5
Initializing Dervied
Initializing size in Derived: 9
'Study > Kotlin' 카테고리의 다른 글
Kotlin 기본 문법 따라하기 - 5. Data classes (0) | 2020.02.20 |
---|---|
Kotlin 기본 문법 따라하기 - 4. Properties and fields (0) | 2020.02.20 |
Kotlin 기본 문법 따라하기 - 2. BasicType (0) | 2020.02.20 |
Kotlin 기본 문법 따라하기 - 1. Basic Syntax (0) | 2020.02.14 |
Kotlin - SpringBoot + Kotlin 프로젝트 생성 (0) | 2020.02.11 |