코틀린 기본 문법 - 확장 함수

2024. 6. 12. 11:46Kotlin 기본 문법 정리

# 확장 함수의 개념

- 코틀린에서는 자바와 달리 외부에서 클래스의 메소드를 추가할 수 있음

- 과도하게 사용하면 코드의 가독성을 해칠 수 있지만 장점도 존재함

- 원하는 메소드가 있지만 내가 설계한 클래스가 아닐 때 외부에서 메소드를 관리함

- 내 목적을 위해 외부에서 관리하기 때문에 원본 클래스의 일관성을 유지할 수 있음

 

# 예시 코드

- 이름, 나이만 조회하는 메소드에서 등급을 조회하는 메소드를 추가하고 싶을 때 

fun main() {
	// 확장함수를 통해 getGrade() 메소드를 추가해줌으로써 등급도 조회가 가능함
    fun Student.getGrade() = println("학생의 등급은 ${this.grade} 입니다")
    var student = Student("참새", 10, "A+")
    student.displayInfo()
    student.getGrade()
}

class Student(name: String, age: Int, grade: String) {
    var name: String
    var age: Int
		var grade: String

    init {
        this.name = name
        this.age = age
				this.grade = grade
    }
// 원본 메소드에는 나이, 이름만 조회 가능하고 등급은 조회가 불가능함
    fun displayInfo() {
        println("이름은 ${name} 입니다")
        println("나이는 ${age} 입니다")
    }
}