코틀린은 자바와 달리 폴더 구조와 패키지명을 일치시키지 않아도 된다.
단순히 파일 상단에 패키지만 명시해주면 컴파일러가 알아서 처리하게 된다.
: 프로젝트 구조 내에서 변수나 함수, 클래스의 공용범위를 지정해둔 단위
클래스 내부(변수/함수)
함수 내부(변수/함수)
val a = "패키지 스코프"
class B {
fun print() {
println(a)
}
}
fun main() {
println(a)
B().print()
}
패키지 스코프
패키지 스코프
val a = "패키지 스코프"
class B {
val a = "클래스 스코프"
fun print() {
println(a)
}
}
fun main() {
val a = "함수 스코프"
println(a)
B().print()
}
함수 스코프
클래스 스코프
접근 제한자: 스코프 외부에서 스코프 내부로의 접근을 제어
의도에 따라 스코프 안에 변수나 함수, 클래스를 배치할 수 있으며 접근 제한자는 이러한 스코프의 외부와 내부에서 사용할 멤버를 분리하여 스코프 외부에서 건드리지 말아야할 기능이나 값들을 안전하게 제한하는 용도를 가진다.