+ 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다.
패키지란
- 코틀린 프로그램을 계층화하여 체계적으로 관리하는 방법이다.
=> 기능과 목적에 따라 분류할 수 있다!
+ 사용했던 이름을 재사용할 수 있다는 장점도 존재한다. (다른 파일에 있기 때문)
- 코틀린 코드를 담고 있는 디렉토리 구조와 일치한다.
package foo.bar.util
fun readInt(radix: Int) = readLine()!!.toInt(radix)
// 디렉토리 구조상 foo/bar/util 디렉토리에 저장된다.
// foo 패키지 내의 bar패키지 내의 util 패키지에 속하게 된다.
- 현재 파일의 디렉토리 구조와 코드가 일치하지 않는다면, 드래그 + alt + enter를 통해 구조를 직접 생성하고 이동시킬 수 있다.

동일 패키지에서의 함수 호출
- 동일 패키지의 함수는 import 없이 호출할 수 있다.
package foo.bar.kotlinVerse
fun readInt(radix: Int) = readLine()!!.toInt(radix)
package foo.bar.kotlinVerse
fun main() {
println(readInt(0))
}
다른 패키지에서의 함수 호출
- 함수의 이름에 패키지 이름까지 모두 붙여서 호출한다.
package foo.bar.util
fun readInt(radix: Int) = readLine()!!.toInt(radix)
- 파일 앞쪽에 import문을 통하여 호출할 함수를 미리 적어 놓으면 함수 이름만으로 호출이 가능하다.
package foo.bar.main
import foo.bar.util.readInt
fun main() {
println(foo.bar.util.readInt(10))
}
- import 하지 않고 다른 패키지에 있는 함수를 호출할 수 있다.
package foo.bar.main
fun main() {
println(foo.bar.util.readInt(10))
}
import … as …
- 다른 패키지에 있는 동일한 이름의 함수를 호출할 때 사용한다.
import foo.readInt as fooReadInt
import bar.readInt as barReadInt
fun main() {
val n = fooReadInt()
val m = barReadInt()
}
패키지 전체 임포트
- 패키지 내의 모든 선언을 임포트 할 때 사용된다.
import kotlin.math.*
// kotlin.math 패키지 안의 모든 선언 import
- 전체 import는 구체적 import에 비하여 우선 순위가 떨어진다.
import foo.readInt
import bar.*
fun main() {
val n = readInt() // foo.readInt() 호출
// bar 패키지의 readInt() 함수는 우선 순위가 밀린다.
}
'Study > Kotlin Study' 카테고리의 다른 글
| [Kotlin] 루프 (반복문) (2) | 2023.08.24 |
|---|---|
| [Kotlin] 조건문 (2) | 2023.08.23 |
| [Kotlin] 증가 감소 연산자 (1) | 2023.08.20 |
| [Kotlin] Smart Cast (0) | 2023.08.19 |
| [Kotlin] 자료형 변환 (0) | 2023.08.18 |