public class JavaPerson{
private final String name;
private int age;
public JavaPerson(String name, int age){
this.name = name;
this.age = age;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
public setName(String name) {
this.name = name;
}
public setAge(int age) {
this.age = age
}
}
fun main(){
p = Person()
println(p.name) // call getter
p.name = "name" // call setter
}
class Person constructor(name: String, age: Int){
val name = name
var age = age
}
**//constructor 키워드 생략 가능
//클래스 필드 선언과 생성자를 동시에 선언 가능
// 본문 내용이 없으면 body({})를 생략 가능
class Person(val name: String, var age: Int)**
public JavaPerson(String name, int age){
if (age <= 0) {
throw new IllegalArgumentException(String.format("나이 %s는 1 이상이어야 합니다."), age)
}
this.name = name;
this.age = age;
}
class Person(val name: String, var age: Int){
init {
if (age <= 0 ) {
throw IllegalArgumentException("나이 ${age}는 1 이상이어야 합니다.")
}
}
}
constructor(name: String) : this(name, 1)
코틀린에서는 부 생성자 보다 default parameter를 권장함