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 |
Tags
- 쉐어드
- Retrofit Kotlin
- ScrollView Child View Height Programmatically
- lifecycleScope
- dialog fragment
- 레트로핏 MVVM
- 프로그래머스
- 레트로핏 코틀린
- 뷰바인딩
- dialogfragment singleton
- 스크롤뷰 자식 뷰 높이 동적조절
- 데이터바인딩
- 안드로이드
- programmers
- 리사이클러뷰
- Retrofit with MVVM
- ScrollView with ConstraintLayout
- java
- 인텐트란?
- recyclerview
- location System
- DataBinding
- dialog resize
- 다이얼로그 크기조절
- 위치정보확인
- 레트로핏2
- 다이얼로그 프래그먼트
- viewBinding
- NestedScrollView
- Android
Archives
- Today
- Total
안드로이드 세계
[Kotlin] 접근 제한자(public, private, internal, protected) 본문
기본적으로 코틀린은 모든 클래스, 변수들은 public으로 선언됩니다.
// 두가지는 동일한 내용
public val a = "이것"
val a = "이것"
public class A{
...
}
class A{
...
}
접근 제한자에 대한 설명은 아래와 같습니다.
- public : Top Level 선언이 가능하며, 모든곳에서 접근이 가능합니다.
- private : Top Level 선언이 가능하며, 같은 코틀린 파일내에서만 접근 가능합니다.
- internal : Top Level 선언이 가능하며, 같은 모듈내에서만 접근 가능합니다. 따라서 해당 접근자를 통하여 모듈화를 쉽게 할 수 있습니다.
※ 접근 시, 변수 또는 메소드는 internal 또는 private 접근 제한자를 가져야합니다.
(모듈 내에서만 접근 가능해야하는데, 외부에서 접근이 가능해진다면 모듈화가 깨지기 때문입니다.)
internal class Utils{
fun print() = print("A")
}
class B{
val b = Utils() // 에러발생
internal val c = Utils()
private val d = Utils()
}
- protected : Top Level에서 선언이 불가능하며, 어떤 클래스 내 또는 해당 클래스를 상속받은 경우에 접근가능합니다.
※ Top-Level에서 protected 접근 제한자를 사용하면 아래와 같은 에러가 발생합니다.
protected class C{ // Error
...
}
※ 아래와 같이 상속받지 못한 경우는 에러가 발생합니다.
open class A{
protected val b = "BB"
}
class B : A(){
val a = b
}
class C{
val a = b // Error
}
'안드로이드(Android) > 이론' 카테고리의 다른 글
[Android] DataBinding이란? (0) | 2021.01.13 |
---|---|
[Android] ViewBinding (뷰바인딩) (0) | 2021.01.13 |
[Android] SharedPreferences란? (0) | 2021.01.08 |
[Android] Intent란? (0) | 2021.01.08 |
[Android] 안드로이드 4대컴포넌트란?(feat. 생명주기) (0) | 2021.01.07 |
Comments