코틀린 심화2 - Data Class와 Sealed Class
data class 코틀린에서 data class 는 요청/응답 데이터와 같이 데이터를 다루고 전달하기 위한 DTO 같은 용도로 사용하기 위한 클래스이다. data class 는 equals(), hashCode(), toString(), copy() 등의 메소드를 자동으로 생성해주며, componentN() 함수도 자동으로 생성해준다. compon...
data class 코틀린에서 data class 는 요청/응답 데이터와 같이 데이터를 다루고 전달하기 위한 DTO 같은 용도로 사용하기 위한 클래스이다. data class 는 equals(), hashCode(), toString(), copy() 등의 메소드를 자동으로 생성해주며, componentN() 함수도 자동으로 생성해준다. compon...
Collection 코틀린에서 컬렉션 자료구조는 크게 List, Set, Map 세 가지로 구분된다. 각 자료구조 모두 불변(immutable) 과 가변(mutable) 형식으로 나누어 사용할 수 있다. 불변 형식의 자료구조는 구조의 변경이 불가능하며, 가변 형식의 자료구조는 구조를 변경할 수 있다. 아래 컬렉션 계층 다이어그램을 통해 각 컬렉션의 ...
추상클래스와 상속 코틀린에서 추상클래스는 자바와 동일하게 abstract 키워드를 사용하여 선언한다. 추상클래스의 목적은 상속받은 클래스에서 기능을 오버라이드 하여 구현하도록 강제하는데 있다. 추상클래스 내부에 abstract 키워드를 사용하여 변수, 함수를 선언하면 상속받는 클래스에서는 반드시 오버라이드 하여 구현해야 한다. // 추상클래스 ab...
class 생성 코틀린 클래스 파일에 클래스를 생성할 때 class 키워드를 사용한다. 그리고 자바와는 다르게 생성자를 선언할 때 constructor 키워드를 class 명과 함께 작성한다. class Coffee constructor( var name: String = "아메리카노", var price: Int = 2000, // 후행콤...
Null Safety 코틀린은 컴파일러에서 Null Safety 기능을 지원한다. 자바에서는 기본형 변수에 null을 대입할 수 있지만, 코틀린에서는 기본형 변수에 null을 바로 대입할 수 없다. // val a : String = null // 컴파일러 에러 기본형 변수에 null을 대입하기 위해서는 변수를 nullable 타입으로 선언해야...
if문 코틀린의 if문은 표현식으로 사용할 수 있다. 즉, if문의 결과를 변수에 대입할 수 있다. val age = 10 val str = if (age > 19) { "성인" } else if (age > 7) { "어린이" } else { "아기" } println(str) // 어린이 그리고 if문은 삼항연산자가 ...