오브젝트 책의 티켓 셀러 레거시 프로젝트 만들어보기!
와우~
Invitation 객체 하나 만드는데도 엄청 끙끙대야 한다. 외국어 처음 배우는 이 기분
간략 소개 : 소극장의 홍보를 위한 어플리케이션. 티켓을 팔고, 초대장이 있으면 무료로 나누어 주는 어플리케이션이다.
public class Invitation {
private LocalDateTime when;
}
Java
복사
자바 버전
class Invitation {
val invitationTime: LocalDateTime = now()
}
Kotlin
복사
코틀린 버전
클래스를 선언할 때 중괄호가 필요 없다. 빈 객체가 되겠지만!
만약에 값만 있는 클래스라면, 다음처럼 도 표현할 수 있다.
class Invitation // 1
class Invitation(val invitationTime: LocalDateTime = now()) // 2
class Invitation(val invitationTime: LocalDateTime) // 3
Kotlin
복사
코틀린은 기본적으로 null이 없다. void도 Unit이라는 의미없는 타입을 정의해놓았다. 필드에 기본값(default value)을 할당해주어야 한다. 기본값을 할당 안해주면 컴파일 오류가 난다. 그러나 소괄호()를 통해 인자로 받으면, 기본값 지정을 안 해주어도 된다. 그러나 해당 클래스를 이용하는 쪽에 반드시 값을 넣어주어야 하는 인자가 된다.
시간 함수에 대해선 LocalDate, LocalTime, LocalDateTime이 있다고 한다. 자바 1.8과 유사한 면이 많다.