class Person(
val name: String, // 비공개 필드와, (공개)getter를 생성한다.
var isMarried: Boolean // 비공개 필드, (공개)getter, (공개)setter를 생성한다.
)
val person = Person("Bob", true)
println(person.name) // getter
println(person.isMarried) // getter
person.isMarried = false // setter
class Rectangle(val height: Int, val width: Int) {
// 커스텀 게터
val isSquare: Boolean
get() {
return height == width
}
/*
val isSquare: Boolean
get() = height == width
*/
}
Kotlin 소스 코드 구조: directory & package
- 다른 파일에 있어도 같은 패키지에 정의된 선언은 사용할 수 있다.
- 다른 패키지에 정의된 선언은
import
를 통해 사용한다.
- 다른 패키지의 최상위 클래스 혹은 함수를 임포트 할 수 있다.
-
import eric.kim.*
를 사용하면 패키지 안의 모든 클래스와 함수를 임포트 한다.
package geometry.shapes
import java.util.Random
class Rectangle(val height: Int, val width: Int)
fun createRandomRectangle(): Rectangle {
val random = Random()
return Rectangle(random.nextInt(), random.nextInt())
}
package geometry.example
import geometry.shapes.createRandomRectangle
fun main(args: Array<String>) {
createRandomRectangle()
}
- 코틀린에서는 여러 클래스를 한 파일에 넣을 수 있다.
- 코틀린의 패키지는 자바와 다르게 디렉터리 구조와 관계없다.
- 하지만 자바 방식대로 패키지별로 디렉터리를 구성하는 것이 좋다.