Kotlin
-
7장 - 연산자 오버로딩과 기타 관례Kotlin/코틀린인액션요약 2022. 9. 17. 00:01
7장에서 다루는 내용 연산자 오버로딩 관례 : 여러 연산을 지원하기 위해 특별히 이름이 붙은 메서드 위임 프로퍼티 Point 클래스를 예제로 알아보겠습니다. data calss Point(val x: Int, val y: Int) 산술 연산자 오버로딩 자바에서는 원시 타입에서만 산술 연산자를 사용할 수 있으며 추가로 String에 대해 + 연산자를 사용할 수 있습니다. 하지만 BigInteger 클래스를 다룬다면 add 메서드를 명시적으로 호출하기보다는 + 연산자를 사용하는 편이 좋습니다. 또한 컬렉션에 원소를 추가하는 경우에도 += 연산자를 사용할 수 있으면 더 좋습니다. 코틀린에서는 이런 일이 가능합니다. data class Point(val x: Int, val y: Int){ operator fu..
-
6장 - 코틀린 타입 시스템Kotlin/코틀린인액션요약 2022. 9. 16. 00:01
6장에서 다루는 내용 - null이 될 수 있는 타입과 null을 처리하는 구문의 문법 - 코틀린의 원시 타입 소개와 자바 타입과 코틀린 원시 타입의 관계 - 코틀린 컬렉션 소개와 자바 컬렉션과 코틀린 컬렉션의 관계 null 가능성 NPE를 피할 수 있게 돕는 코틀린 타입 시스템의 특성입니다. 컴파일 시점에 널이 될 수 있는 값들을 검사함으로 런타임 시점에 발생할 수 있는 예외의 가능성을 줄일 수 있습니다. 자바와의 가장 중요한 차이로 널이 될 수 있는 타입을 명시적으로 지원합니다. 물론 자바에서도 Optional을 사용하면 되지만 코틀린에서는 ?하나로 해결할 수 있습니다. Type? = Type 또는 null 안전한 호출 연산자 ?. // 엘비스 연산자를 활용해 null 다루기 fun main() { ..
-
5장 - 람다로 프로그래밍Kotlin/코틀린인액션요약 2022. 9. 13. 00:01
5장에서 다루는 내용 - 람다 식과 멤버 참조 - 함수형 스타일로 컬렉션 다루기 - 시퀀스 : 지연 컬렉션 연산 - 자바 함수형 인터페이스를 코틀린에서 사용 - 수신 객체 지정 람다 사용 자바 8을 사용했다면 람다식에 대해 어느 정도 알고 있을 거라 예상합니다. 무명 클래스/ 익명클래스를 통해 인터페이스를 구현하는 방법은 불필요한 코드가 생기게 됩니다. 이를 람다식을 활용하여 간결한 코드로 변환할 수 있지만 메서드가 하나뿐인 functional interface에서만 활용할 수 있습니다. 코틀린에서는 이를 SAM 인터페이스라고도 부릅니다. (Single Abstract Method) 만약 사람의 이름과 나이를 저장하는 Person 클래스에서 연장자를 찾고 싶다면 어떻게 해야 할까요? 람다를 활용해본 적 ..
-
4장 - 클래스, 객체, 인터페이스Kotlin/코틀린인액션요약 2022. 9. 12. 00:01
4장에서 다루는 내용 - 클래스와 인터페이스 - 뻔하지 않은 생성자와 프로퍼티 - 데이터 클래스 - 클래스 위임 - object 키워드 사용 클래스 계층 정의 코틀린에 새로 도입한 sealed 변경자는 클래스 상속을 제한합니다. 코틀린 인터페이스 코틀린의 인터페이스는 추상 메서드, 구현이 있는 메서드도 정의할 수 있습니다. 즉, 자바 8의 디폴트 메서드와 비슷합니다. 인터페이스 interface Clickable { fun click() //추상 메서드 fun showOff() = println("I'm clickable!") //디폴트 구현이 있는 메서드 } 자바와 달리 default를 붙일 필요가 없습니다. 단순한 인터페이스 구현 class Button : Clickable{ override fun ..
-
3장 - 함수 정의와 호출Kotlin/코틀린인액션요약 2022. 9. 11. 00:01
3장에서 다루는 내용 - 컬렉션, 문자열, 정규식을 다루기 위한 함수 - 이름 붙인 인자, 디폴트 파라미터 값, 중위 호출 문법 사용 - 확장 함수와 확장 프로퍼티를 사용해 자바 라이브러리 적용 - 최상위 및 로컬 함수와 프로퍼티를 사용해 코드 구조화 코틀린에서 컬렉션 만들기 var set = hashSetOf(1,7,53) // java.util.HashSet var list = arrayListOf(1,7,53) // java.util.ArrayList var map = hashMapOf(1 to "one", 7 to "seven", 53 to "fifty-three") // java.util.HashMap val Strings = listOf("first","second","fourteenth");..
-
2장 - 코틀린 기초Kotlin/코틀린인액션요약 2022. 9. 10. 00:01
2장에서 다루는 내용 - 함수, 변수 , 클래스 enum 프로퍼티를 선언하는 방법 - 코틀린의 여러 제어구조 - 스마트 캐스트 - 예외 던지기와 예외 잡기 단, 여기에서 배운 내용으로 작성하는 코드는 코틀린다운 코드라고 부르기는 어려움 함수와 변수 fun main(args: Array){ println("Hello,world!") } 함수를 선언할 때 fun 키워드를 사용합니다. 파라미터 이름 뒤에 그 파라미터의 타입을 씁니다. System.out.println 대신에 println을 사용합니다.(자바 라이브러리 함수를 간결하게 사용할 수 있는 래퍼를 제공합니다) 끝에 세미콜론(;)을 사용하지 않아도 됩니다. 함수 fun max(a: Int, b:Int) : Int{ return if(a>b) a els..
-
[Kotlin] Intellij 에서 코틀린 시작하기Kotlin/Kotlin 2022. 9. 9. 00:01
1. File -> New -> Project 경로 지정 및 프로젝트 이름 지정 JDK 설정 2. 잠시 후에 코틀린 프로젝트가 생성되고 화살표를 눌러 실행시켜봅니다. 결과 3. 자바코드 실행시켜 보기 public class HelloJava { public static void main(String[] args) { System.out.println("Hello Java"); } } Java 클래스를 하나 만들고 실행시켜봅니다. 컴파일 에러가 나올 수 있습니다. 1. File -> Project Structure -> Project or SDKs -> 내가 선택한 자바 버전 맞는지 확인 2. File -> Settings -> Java Compiler -> 내가 선택한 자바 버전 맞는지 확인 4. 자바코..
-
1장 - 코틀린소개Kotlin/코틀린인액션요약 2022. 9. 8. 00:01
코틀린이란? 코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어입니다. 기존 자바 라이브러리와 프레임워크와 함께 잘 동작하며 성능도 자바와 같은 수준입니다. 코틀린의 철학은 간결하고 실용적이며, 자바 코드와의 상호운영성을 중시합니다. 코틀린 맛보기 // 데이터 클래스 data class Person( val name: String, val age: Int? = null // 널이 될 수 있는 타입과 파라미터 디폴트 값 ) // 최상위 함수 fun main(args: Array) { val persons = listOf( Person("Alice"), Person("Bob", age = 29) ) val oldest = persons.maxBy { it.age ?: 0 } // 람다 식과 엘비스 연산..