본문 바로가기

Study/Kotlin Study

[Kotlin] 패키지: 패키지 개요

+ 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다.

패키지란

- 코틀린 프로그램을 계층화하여 체계적으로 관리하는 방법이다.

  => 기능과 목적에 따라 분류할 수 있다!

+ 사용했던 이름을 재사용할 수 있다는 장점도 존재한다. (다른 파일에 있기 때문)

- 코틀린 코드를 담고 있는 디렉토리 구조와 일치한다.

package foo.bar.util

fun readInt(radix: Int) = readLine()!!.toInt(radix)
// 디렉토리 구조상 foo/bar/util 디렉토리에 저장된다.
// foo 패키지 내의 bar패키지 내의 util 패키지에 속하게 된다.

- 현재 파일의 디렉토리 구조와 코드가 일치하지 않는다면, 드래그 + alt + enter를 통해 구조를 직접 생성하고 이동시킬 수 있다.

파일 이동 (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