1. 관련 용어 정리
1) 프로젝트 : 최상단 개념. 모듈, 패키지, 클래스를 포함함
2) 모듈 : 패키지, 클래스를 포함 //java, res 폴더 포함. app폴더
3) 패키지 : 클래스를 포함 //java폴더 하위파일들을 포함. 클래스는 동일 페이지라고 생각하면 될듯
4) 접근 : 객체를 이용해 변수나 메소드를 호출할 수 있는지의 여부.
2. 접근제한자
(+) 변수, 메소드 등의 데이터로의 무분별한 접근(.통해 접근하는거) 막고 유지보수에 용이
1) public : 어디서나 접근 가능. 명시하지 않았으면 기본적으로 public
2) protected : 기본적으로는 동일한 클래스 내에서만 + 상속 받은 경우 접근가능 (최상위(open)클래스에는 불가능, 프로퍼티에는 가능?)
3) internal : 같은 모듈 내에서만 접근 가능 (패키지, 클래스) // <-- java의 default와 비슷한듯
4) private : 동일한 클래스 내에서만 접근 가능
*예시 (클래스)
class AccessTestClass { //class 앞에 접근제한자 사용가능한거겠지?
public var a:Int = 1
var b = 2
private var c = 3
internal var d = 4
protected var e = 5
public fun publicTest() {
println("public 입니다")
}
fun publicTest2() {
println("public 입니다")
}
private fun privateTest() {
println("private 입니다")
}
internal fun internalTest() {
println("internal 입니다")
}
protected fun protectedTest() {
println("protected 입니다")
}
}
class AccessTestChildClass: AccessTestClass() { //상속이라 AccessTestClass가 open이어야 함
fun protectedTest1() {
println("e의 값은 ${e}")
}
}
fun main() {
var accessTestClass = AccessTestClass()
var accessTestChildClass = AccessTestChildClass()
// . 하고 접근가능한 요소를 확인
// accessTestClass.
accessTestChildClass.protectedTest1()
}
'언어 > Kotlin' 카테고리의 다른 글
[Kotlin 문법 종합] - 지연 초기화 (@@0313 추가중~) (0) | 2024.03.06 |
---|---|
[Kotlin 문법 종합] - 예외처리 # 수정하기 (0) | 2024.03.06 |
[Kotlin 문법 종합] - 인터페이스, 추상 클래스 (0) | 2024.03.05 |
[Kotlin 문법 종합] - 오버라이딩, 오버로딩 # 수정하기 (0) | 2024.03.05 |
[Kotlin 문법 종합] - 상속 (0) | 2024.03.05 |