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
- flet
- spring data jpa
- 자바암호
- 파이썬
- 데이터베이스
- Database
- android
- write by GPT-4
- 유닉스
- 인프라
- 자바네트워크
- write by chatGPT
- spring integration
- Java
- NIO
- jpa
- 소프트웨어공학
- 리눅스
- python
- 고전역학
- 시스템
- kotlin
- oracle
- 코틀린
- 자바
- 웹 크롤링
- GPT-4's answer
- chatGPT's answer
- 역학
- JVM
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