안드로이드 앱(Kotlin|Java)/[2025~] 안드로이드 앱
Part0_Ch02_02 확장함수
heylo
2025. 1. 24. 17:48
1) 확장 함수
Extension Function 기존에 정의되어 있는 클래스에 함수를 추가하는 기능
fun main() {
// 확장함수 Extension Function
// 기존에 정의되어 있는 클래스에 함수를 추가하는 기능
val test = Test()
Test().hello()
// 추가한 함수 호출
test.hi()
}
// 만약 Test 클래스가, 라이브러리에서 임포트 돼서
// 수정할 수 없는 클래스라면
class Test() {
fun hello() = println("안녕")
fun bye() = println("잘가")
}
// 클래스에 함수 추가
fun Test.hi() = println("하이")
2) 확장 함수의 편리성
TestView 에서 원하는 함수를 추가하고 싶을 때,
JAVA 였다면, 테스트뷰 라는 것을 상속 받는 우리만의 커스텀 TestView 만들고
그 안에 쓰고 싶은 기능을 function 으로 넣는다
- 커스텀한 테스트뷰를 만들어야 하고
- 커스텀한 테스트뷰 에서만 원하는 함수를 호출할 수 있음
- 코드도 길어지고
- 커스텀한 함수를 사용하고 싶은 테스트뷰는 모두 커스텀테스트뷰로 바꿔야하는 불편함
확장함수는 위와 같은 기존 불편함을 해결해주는 강력한 도구