본문 바로가기
  • 개발하는 곰돌이

클래스5

[Java/Kotlin] 필드(Field)와 프로퍼티(Property)는 무슨 차이가 있을까? 목차 들어가기 전에 처음 코틀린에 대해 공부하기 시작하면서 프로퍼티에 대한 내용을 다룰 때 좀 혼란스러운 느낌이 있었다. 자바 클래스의 필드를 이야기하는 것 같다가도 조금 다른듯한 느낌이었기 때문이다. 그래서 당시에는 그냥 어차피 비슷한 개념이고, 언어마다 명칭이 다른가보다 하면서 코틀린 클래스의 프로퍼티 = 자바 클래스의 필드의 느낌으로 인식하고 사용했다. 그러다가 최근에 객체지향의 사실과 오해(조용호 저)에 대한 스터디를 진행하면서 프로퍼티라는 단어가 나와서 이야기를 조금 했었는데, 비슷한 개념인 것은 맞지만 다른 점이 있다는 이야기를 들어서 확실하게 정리해야겠다는 생각이 들었다. 필드(Field)와 프로퍼티(Property) 결론부터 말하자면 프로퍼티는 객체가 갖는 상태와 같은 속성이고, 필드는 프.. 2023. 5. 2.
Kotlin 기본 문법 10 : 커스텀 getter와 setter 목차 개요 Kotlin의 클래스 역시 Java와 마찬가지로 각 필드에 대한 getter와 setter가 존재한다. 이번 포스트에서는 Kotlin 클래스의 기본적인 getter와 setter 및 Kotlin 클래스의 커스텀 getter와 setter에 대해 정리한다. Kotlin 클래스의 기본 getter와 setter Kotlin에서 클래스를 작성하는 방법은 Kotlin 기본 문법 6 : 클래스와 접근 지정자 포스트에서 이미 다룬바가 있다. Kotlin 클래스의 필드는 기본적으로 Java와 달리 별도의 getter, setter 메소드로 접근하지 않는다. 대신 Kotlin에서는 클래스의 생성자를 작성하면 필드의 종류(val, var)에 따라 자동으로 getter와 setter를 생성해주고, 일반적으로 필.. 2022. 12. 22.
Kotlin 기본 문법 9 : Kotlin의 다양한 클래스(Data Class, Enum Class, Sealed Class) 목차 개요 Kotlin에는 기본적인 클래스, 추상 클래스, 인터페이스 외에도 Data Class, Enum Class, Sealed Class가 존재한다. 물론 Enum Class는 Java에도 존재하는 개념이지만 Data Class와 Sealed Class는 Java에는 존재하지 않는 Kotlin만의 특별한 클래스이다. 이번 포스트에서는 이러한 Kotlin의 특별한 클래스에 대해 정리한다. Data Class Data Class는 주로 DB를 다루는 앱을 개발할 때 각 DTO(Data Transfer Object)나 VO(Value Object)를 작성할 때 사용할 수 있는 특수한 클래스이다. Java에서 DTO나 VO를 작성할 때 getter, setter를 비롯하여 equals(), hashCode.. 2022. 12. 16.
Kotlin 기본 문법 7 : 추상 클래스/인터페이스와 클래스의 상속 목차 개요 Kotlin도 Java와 마찬가지로 추상 클래스와 인터페이스가 존재하고 클래스에서 다른 클래스를 상속하거나 인터페이스를 구현할 수 있다. 이번 포스트에서는 Kotlin의 추상 클래스/인터페이스와 클래스의 상속에 대해 정리한다. Kotlin의 추상 클래스 Kotlin의 추상 클래스는 Java와 마찬가지로 abstract class 키워드를 사용하여 작성한다. 추상 클래스를 작성하는 방법은 일반적인 클래스를 작성하는 것과 동일하게 작성하고 class 대신 abstract class를 사용하면 된다. 클래스를 작성하는 기본적인 방법을 제외하면 Java와 같다. // Java abstract class Animal { String name; public Animal(String name) { this.. 2022. 12. 13.
Kotlin 기본 문법 6 : 클래스와 접근 지정자 목차 개요 Kotlin은 JVM 기반이면서 객체지향 프로그래밍을 추구하는 언어인 만큼 클래스를 통해 객체를 생성하여 사용한다. 클래스와 객체의 차이는 아래와 같다. 클래스 : 객체들의 공통된 특성을 정의해놓은 틀 객체 : 클래스를 이용하여 생성하여 각자의 속성을 가진 개체 클래스와 객체의 예를 들면 다음과 같다. 자동차라는 클래스가 있으면 차종, 자동차번호 등은 모든 자동차가 공통적으로 갖는 특성이다. 이렇게 공통적으로 갖는 특징적인 값을 필드(field)라고 한다. 또한 모든 자동차는 운행, 세차 등의 행위를 할 수 있는데, 이렇게 공통적으로 갖는 동작 행위를 메소드(method)라고 한다. 이러한 자동차라는 클래스로 차종, 자동차번호 등의 각각의 필드값을 갖는 개체가 바로 객체가 된다. Kotlin은.. 2022. 12. 2.