데이터 클래스(data class) 자바를 사용해본 적이 있다면, 롬복(Lombok)이라는 플러그인을 사용해본 적이 있을 것입니다. 데이터 클래스는 롬복의 @Data 애너테이션과 매우 유사한 기능을 언어단에서 지원하여줍니다. 사용 방법 data class Student(val name: String, val age: Int) 위와 같이 name, age 필드를 가지는 Student 클래스를 데이터 클래스로 선언할 경우 어떠한 기능을 코틀린에서 제공하여주는 걸까요? 대표적으로 코틀린에서는 데이터 클래스로 선언할 경우 다음과 같은 5가지의 기능을 기본적으로 구현하여 제공하여 줍니다. 1. toString 메서드 toString 메서드는 해당 클래스에 대한 정보를 바탕으로 문자열을 구성하여 반환해주는 메서드입..
인터페이스 코틀린의 인터페이스는 자바 8 인터페이스와 거의 유사합니다. 자바처럼 인터페이스 안에는 추상 메서드뿐만 아니라 기본 구현이 있는 메서드(자바 8에서의 default 메서드를 의미합니다.) 또한 정의할 수 있습니다. 하지만 인터페이스에는 상태(필드)는 들어갈 수 없지만, 프로퍼티는 선언할 수 있습니다. 인터페이스 선언 interface Closeable { val short: String // 프로퍼티 fun close() // 추상 메서드 fun closeBy(name: String) { // default 메서드 println("name : $name") close() } } 자바와 크게 다르지 않게 인터페이스를 선언하고, 인터페이스 안에 추상 메서드를 선언할 수 있습니다. 인터페이스 구현 ..
예외처리 코틀린에서 예외(Exception) 처리는 자바와 거의 비슷합니다. 함수는 예외를 던질 수 있으며, 해당 예외는 함수를 호출하는 쪽에서 그 예외를 잡아 처리할 수 있습니다. 발생한 예외를 함수를 호출하는 쪽에서 처리(catch) 하지 않으면 함수 호출 스택에 쌓이면서 예외를 처리하는 부분이 나올 때까지 예외를 다시 던지게(rethrow)된다. 즉 전파(propagation)가 됩니다. 예외 던지기 예외는 자바와 동일하게 throw 키워드를 사용하여 던질 수 있습니다. 다만 코틀린은 명시적으로 new 키워드를 쓰지 않아도 객체를 생성할 수 있기 때문에 다음과 같이 예외를 던질 수 있습니다. fun main() { val input = 102 val score = if (input in 0..100..
- Total
- Today
- Yesterday
- 프로그래머스
- dp
- set
- 코딩인터뷰
- 스택
- 코드 스니펫
- 구현
- 탐욕법
- dsu
- 카카오
- k8s
- 문자열
- 정렬
- Uber
- 알고리즘
- 쓰레드
- TDD
- sql
- BFS
- 해쉬
- kotlin
- Java
- 비트연산
- dfs
- 오늘의집
- JPA
- 회고
- 스트림
- 연결리스트
- 우선순위큐
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |