본문 바로가기
Language/Kotlin

[Kotlin] 클래스

by 진꿈청 2024. 9. 2.

Kotlin

 

 

클래스

 

`Kotlin` 클래스의 선언은 클래스 이름을 포함하여 매개변수, 생성자, 그리고 중괄호로 묶인 본문으로 구성됨

 

간단 예제

class Person{
	var name: String = "Yoonsoo"
    var age: Int = "15"
    var country: String = "South Korea"
    var height: Int = 150
    var weight: Int = 30
    
    fun sayHello(){
    	println("Hi")
    }
    
    fun introduce(){
    	println("I'm $name and my age is $age.")
    }
}

 

 

생성자

`Kotlin`의 생성자는 아래와 같은 형식으로 구성이 가능하다.

 

class PersonWithConstructor constructor(private val name: String, private val age: Int){ // 주 생성자
	
    constructor(name: String) : this(name, 15) // 부 생성자
    
    constructor(name: String, age: Int, etc: String) : this(name, age){ // 추가 생성자
    	println("additional constructor is called : $etc")
    }
    
    fun sayHello(){
    	println("Hi")
    }
    
    fun introduce(){
    	println("I'm $name and my age is $age.")
    }
}

 

 

실습

 

ClassSample

 

`main()` 함수가 존재한다.

package classes

fun main() {
    val aMan = Person()
    aMan.sayHello()
    aMan.introduce()

    aMan.age = 55
    println("sorry, my real age is ${aMan.age}")

    println("=========================================")

    val tim = PersonWithConstructor("Tim", 150)
    val poter = PersonWithConstructor("Poter")
    val harry = PersonWithConstructor(name = "harry", age = 25, etc = "추가값")

    poter.sayHello()
    poter.introduce()

    tim.sayHello()
    tim.introduce()

    harry.sayHello()
    harry.introduce()
}

 

 

Person

package classes

class Person {
    var name: String = "Yoonsoo"
    var age: Int = 15
    var country: String = "South Korea"
    var height: Int = 150
    var weight: Int = 30

    fun sayHello() {
        println("Hi!")
    }

    fun introduce() {
        println("I'm $name and my age is $age.")
    }
}

 

 

PersonWithConstructor

package classes

class PersonWithConstructor constructor(private val name: String, private val age: Int) { // 주 생성자

    private var etc: String = "no value"

    init {
        println("initializer block : $etc")
    }

    constructor(name: String) : this(name, 15) // 부 생성자

    constructor(name: String, age: Int, etc: String) : this(name, age) { // 추가 생성자
        this.etc = etc
        println("additional constructor is called : ${this.etc}")
    }

    fun sayHello() {
        println("Hi!")
    }

    fun introduce() {
        println("I'm $name and my age is $age.")
    }
}

 

`init` 메소드는 말 그대로 최초 초기화를 위해 사용되는 코드이다.

그리고 `constructor`는 클래스 이름의 옆에도 지정이 가능하고 추가로 부 생성자도 호출이 가능하다.

 

'Language > Kotlin' 카테고리의 다른 글

[Kotlin] Enum Class & Data Class  (1) 2024.09.03
[Kotlin] 상속  (1) 2024.09.03
[Kotlin] 함수  (0) 2024.09.02
[Kotlin] 조건문과 반복문  (0) 2024.09.02
[Kotlin] 연산자  (0) 2024.09.02