mygomii

[Kotlin] 2.2 행동과 데이터 캡슐화 : 클래스와 프로퍼티 본문

Kotlin

[Kotlin] 2.2 행동과 데이터 캡슐화 : 클래스와 프로퍼티

mygomii 2025. 3. 6. 09:01
반응형
  • 객체지향 언어로 클래스라는 추상화를 제공, 더 적은 양의 코드로 대부분의 공통적인 작업을 수행할수 있음

(Java)

public class Person {
  private final String name;
  
  public Person(String name) {
	this.name = name;
  }
	 
  public String getName() {
 	return name;
  }
}

(Kotlin)

class Person(val name: String)
  • 위 자바코드에 비해 kotlin는 이렇게 간단하게 작성할수 있다

2.2.1 클래스와 데이터를 연관시키고, 접근 가능하게 만들기 : 프로퍼티

  • 클래스라는 개념은 데이터를 캡슐화하고, 캡슐화한 데이터를 다루는 코드를 한 주체 안에 가두는 것
  • 자바에서는 데이터를 필드에 저장하면 멤버 필드의 가시성은 보통 비공개(private), 접근자 메서드를 제공 ⇒ 자바에서는 필드와 접근자를 한데 묶어 ‘프로퍼티(property)’ 라고 부름
  • 코틀린은 프로퍼티를 언어 기본 기능으로 제공
class Person (
  val name: String, // 읽기 전용 프로퍼티로 getter 를 만들어냄
  var isStudent: Boolean // 쓸 수 있는 프로퍼티로 setter, getter를 만들어냄
)

2.2.2 프로퍼티 값을 저장하지 않고 계산 : 커스텀 접근자

class Rectangle(val height: Int, val width: Int) {
  val isSquare: Boolean 
  get() {
	return height == width 
  }
				
  // get() = height == width  <= 이렇게 사용해도 된다 
}
  • 위 코드 처럼 사용할 수 있다.
  • 커스텀 게터를 정의하는 방식과 클래스 안에 함수를 정의하는 방식 중 성능 차이는 없지만, 가독성 차이는 있다. (요구사항에 따라 다르게 구현하면 될듯)

2.2.3 코틀린 소스코드 구조 : 디렉터리와 패키지

  • 코틀린은 클래스를 조직화하기 위해 패키지라는 개념을 사용(자바 패키지와 비슷)
반응형