다음은 자바코드를 코틀린으로 작성해봅시다. name은 불변값이기 때문에 setter가 없습니다.
아래처럼 작성할 수 있습니다.
생략 가능한 키워드를 생략하면 다음과 같이 간단하게 작성 가능 합니다. 약간 생김새가 자바의 record랑 비슷해보인다. 하지만 자바 record 는 기본적으로 다 불변필드이긴 하다.
getter와 setter는 속성으로 접근해서 바로 사용할 수 있다. 이는 자바로 만들어진 클래스를 들고와도 똑같이 사용이 가능하다.
아래는 자바 생성자에서 검증을 하는 방법이다. 코틀린에서 생성자에서 검증을 한다면 어떻게 해야 할까 ?
코틀린에서는 init 블록을 사용하면 된다.
최초로 태어나는 아기는 무조건 1살이니, 생성자를 하나 더 만들자 라는 요구사항이 생겨서 생성자를 하나 더 만들어야 한다면, 아래처럼 작성할 수 있다.
주생성자는 반드시 존재해야 한다. 단, 주생성자에 파라미터가
하나도 없다면 생략 가능
부생성자는 최종적으로 주생성자를 this로 호출해야 한다.
body를 가질 있다.
부생성자보다는 default parameter를 권장한다.가독성이 더 좋다.
성인인지 확인하는 기능을 추가해보겠습니다.
아래는 자바에서 작성한 코드 입니다.
아래는 코틀린으로 작성한 코드 입니다.
커스텀 getter를 사용하면 아래처럼도 작성이 가능합니다.
name을 get할때 무조건 대문자로 바꾸어 줘 봅시다. 아래처럼 커스텀 getter를 작성 할 수 있습니다.
왜 field를 사용하는 것일까?
따라서 field 는 무한루프를 막기 위한 예약어, 자기 자신을 가리킨다.
아래처럼 작성도 가능하다.
setter도 마찬가지이다. 하지만 Setter 자체를 지양하기 때문에
custom setter는 잘 안쓸 것 같다.
다음 포스팅은 상속에 대해 공부하며 포스팅해보겠습니다.