티스토리 뷰

반응형

Java와 Kotlin의 클래스

public class Person {
    private final String name;

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

 위는 Java 문법으로 작성된 Person 클래스이다. 필드로 문자열 name을 가지고 생성자와 getter를 가진다. 이 클래스를 Kotlin으로 변환을 해보자.

 

class Person(val name: String)

 코틀린 코드로 변환된 Person 클래스이다. 코틀린은 기본적으로 public 가시성을 가진다. 따라서 public은 생략가능하다.

 

IntelliJ에서 Java → Kotlin 변환

 코틀린 코드로 변환하고 싶은 자바 코드에서 command + shift + A를 누르고 [Convert Java File to Kotlin File]을 선택하면 된다.

 

 

프로퍼티

  자바에서 필드는 private 접근 제어자를 가진다. 그리고 getter 혹은 setter와 같은 메서드를 통해서 필드에 접근한다. 필드와 필드를 사용하기 위한 getter, setter와 같은 접근자를 묶어서 프로퍼티(property)라고 부른다.

  코틀린은 프로퍼티를 언어 기본 기능으로 제공한다.

 

class Person (
    val name: String,
    var isMarried: Boolean
)

  val은 코틀린에서 상수이고 var은 변수를 뜻한다. val로 선언한 필드에 대해서 코틀린은 비공개 필드와 필드의 값을 읽어오는 getter을 생성한다. var은 val과 마찬가지고 비공개 필드 공개 getter을 생성하고 더하여 공개 setter을 생성한다.

 

fun main() {
    val person = Person("Spring", true)
    println(person.name)
    person.isMarried = false
}

  코틀린에서 필드의 값을 가져오기 위해서는 [객체명.필드명]을 통해서 가져올 수 있다. 그리고 필드의 값을 변경할 때는 [객체명.필드명 = 설정할값]으로 변경할 수 있다.

 

 

커스텀 접근자

class Rectangle(val height: Int, val width: Int) {
    val isSquared: Boolean
        get() {
            return height == width
        }
}

  isSuquared 퍼티는 getter만을 제공해준다. 프로퍼티에 접근할 때마다 getter에서는 매번 값이 계산된다. 

 

class Rectangle(val height: Int, val width: Int) {
    val isSquared: Boolean
        get() = height == width
}

  getter는 한 줄로 줄일 수도 있다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함