클래스와 프로퍼티


public class JavaPerson {
    private final String name;
    private int age;

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

    public JavaPerson(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @NotNull
    public String getName() {
        return name;
    }

    @NotNull
    public int getAge() {
        return age;
    }

		public void setAge(int age) {
        this.age = age;
    }
}
class Person constructor(name: String, age: Int) {
    val name = name
    var age = age
}

생성자와 init


클래스가 생성되는 시점에 나이를 검증해보자

public JavaPerson(String name, int age) {
    if (age <= 0) {
        throw new IllegalArgumentException(String.format("나이는 %s일 수 없습니다.", age));
    }
    
    this.name = name;
    this.age = age;
}
class Person(val name: String, var age: Int) {
    init {
        if (age <= 0) {
            throw IllegalArgumentException("나이는 ${age}일 수 없습니다.")
        }
    }
}