2.2 클래스와 프로퍼티 (getter, setter) - ericbykim/kotlin-in-action GitHub Wiki

코틀린 VO (Value Object)

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

Custom 접근자

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()
}
  • 코틀린에서는 여러 클래스를 한 파일에 넣을 수 있다.
  • 코틀린의 패키지는 자바와 다르게 디렉터리 구조와 관계없다.
  • 하지만 자바 방식대로 패키지별로 디렉터리를 구성하는 것이 좋다.
⚠️ **GitHub.com Fallback** ⚠️