Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 시스템
- lombok
- 파이썬
- 역학
- JVM
- kotlin
- android
- python
- 웹 크롤링
- Spring boot
- 인프라
- 자바네트워크
- 자바암호
- GIT
- 소프트웨어공학
- 리눅스
- Spring Batch
- NIO
- write by GPT-4
- GPT-4's answer
- oracle
- Java
- 코틀린
- 뉴턴역학
- write by chatGPT
- Database
- 자바
- 고전역학
- chatGPT's answer
- 유닉스
Archives
- Today
- Total
Akashic Records
익스텐션 함수 본문
728x90
익스텐션 함수는 Kotlin의 강력한 기능 중 하나로, 기존 클래스에 새로운 메서드를 추가하는 것처럼 사용할 수 있습니다. 이 기능은 클래스의 정의를 변경하지 않고도 클래스의 기능을 확장하게 해줍니다.
- 익스텐션 함수의 선언
익스텐션 함수는 "클래스명.함수명"의 형태로 선언됩니다. 함수 내부에서 this
키워드를 사용하면 해당 클래스의 인스턴스를 가리킵니다.
예제:
fun String.hello(): String {
return "Hello, $this!"
}
println("Kotlin".hello()) // 출력: Hello, Kotlin!
이 예제에서 String
클래스에 hello
익스텐션 함수를 추가했습니다. this
는 String
인스턴스를 가리키며, "Kotlin".hello()
를 호출하면 "Hello, Kotlin!"이 출력됩니다.
- 익스텐션 함수와 멤버 함수
만약 클래스의 멤버 함수와 동일한 시그니처를 가진 익스텐션 함수가 있을 경우, 멤버 함수가 우선순위를 가집니다. 이는 익스텐션 함수가 멤버 함수를 오버라이드할 수 없기 때문입니다.
예제:
class MyClass {
fun foo() {
println("Member function")
}
}
fun MyClass.foo() {
println("Extension function")
}
val myClass = MyClass()
myClass.foo() // 출력: Member function
이 예제에서 MyClass
에 foo
멤버 함수와 foo
익스텐션 함수가 있습니다. myClass.foo()
를 호출하면 멤버 함수가 실행됩니다.
익스텐션 함수는 기존 클래스를 수정하지 않고도 클래스의 기능을 확장하는 강력한 도구입니다. 이를 통해 코드의 재사용성과 가독성을 향상시킬 수 있습니다.
728x90
Comments