본문 바로가기
개발&프로그래밍

[Kotlin] 코틀린 클래스와 프로퍼티

by 재아군 2022. 3. 15.

코틀린에서의 클래스와 프로퍼티에 대해 알아봅니다.

 

 

코틀린 클래스(Class)

 

자바에서 아래와 같은 Person 클래스를 

public class Person {
    private final String name;

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

    public String getName() {
        return name;
    }
}

 

코틀린 코드로 바꿔보면? 단! 한줄로 가능합니다.

class Person(val name: String)

 

코틀린에서는 명시하지 않아도 기본적으로 public 접근제한자여서 생략이 가능합니다. 

 

코틀린 프로퍼티(Property)

요즘 나온 언어들과 같이 프로퍼티에 읽기 전용과 변경 가능한 프로퍼티가 있습니다.

 

val : 읽기 전용 프로퍼티 

var : 변경 가능 프로퍼티

 


클래스 안에서 변경 가능한 프로퍼티 선언하기

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

name: 읽기 전용 프로퍼티. (비공개)필드와 public getter를 만들어냅니다.
isMarried: 변경 가능 프로퍼티. (비공개)필드, (공개)getter, (공개)setter를 만들어냅니다.

 

 

 

자바와 코틀린에서 Person 클래스를 선언하고 필드에 접근할때 차이점을 알아봅니다.

 

자바에서의 Person 클래스

Person person = new Person("Bob", true);
System.out.println(person.getName());
System.out.println(person.isMarried());

코틀린에서의 Person 클래스

val person = Person("Bob", true); //new 키워드 사용하지 않고 생성자 호출합니다.

println(person.name); //프로퍼티 이름을 직접 사용하여도 코틀린이 자동으로 getter를 호출해줍니다.
println(person.isMarried);

 

댓글