본문 바로가기
Program Language/Android

[Kotlin] 코틀린만의 접근지정자! internal

by KangJinHo 2018. 8. 2.
안녕하세요

코틀린에 있는 접근지정자를 자바와 비교하여 설명해드리려고 합니다




자바


public int a = 1

protected int b = 2

private int c = 3

int d = 4 (default / 패키지 단위)


default의 경우 따로 명시를 해주지 않아도 됩니다.


여기서 default의 경우 패키지 단위라는 것에 대해 의문점을 가지는 분들이 계실겁니다.! 저는 이 부분을 집고 넘어가려고 합니다


패키지 단위라는 것은 같은 패키지내에 있으면 어디에서든 접근이 가능하다는 것이죠


A라는 클래스에 a와 B라는 클래스에 c가 default로 선언이 되어있으면, 서로 접근에 제한이 없다는 것입니다.



deafult는 패키지 이름을 보고 접근이 가능한지 아닌지를 판단하기 때문에, 보안의 위험을 나타낼 수도 있습니다



코틀린


val a = 1 (default public)

protected val b = 2

private val c = 3

internal val d = 4



코틀린에서 자바의 단점을 보완하기 위해 internal 접근 제한자를 제공합니다


자바에서 제한하는 패키지 단위와는 달리 동일한 모듈 내에 있는 클래스들의 접근을 제한합니다.


코틀린에서 제한하는 모듈의 범위는


  • IntelliJ IDEA 모듈
  • Maven / Gradle 프로젝트
  • 하나의 Ant 태스크 내에서 함께 컴파일되는 파일들

범위를 제한함으로써, 보안을 높이고, 자바의 단점을 보완한 코틀린입니다.




일상 속 이야기를 방문해주셔서 감사합니다. 댓글을 남겨주시면 많은 힘이 될거에요






'Program Language > Android' 카테고리의 다른 글

Crashlytics + Timber?  (0) 2022.08.11
Android StrictMode? 그게뭔데 ?  (0) 2022.08.09
[android] Androidx 사용법  (0) 2018.12.30
[Kotlin] 코틀린! data 클래스  (0) 2018.08.03
[Kotlin] 코틀린이란?  (0) 2018.07.31

댓글