Kotlin
-
19강. 코틀린의 이모저모BackEnd/Kotlin 2024. 5. 1. 07:30
Type Alias와 as import구조분해와 componentN 함수Jump와 LabelTakeIf와 TakeUnless Type Alias와 as import Type Alias는 긴 이름의 클래스 혹은 함수 타입이 있을 때 축약하거나 더 좋은 이름을 쓰고 싶을 때 사용합니다.// 함수typealias FruitFilter = (Fruit) -> Booleanfun filterFruits(fruits: List, filter: FruitFilter) {}// 클래스data class UltraSuperGuardianTribe( val name: String)typealias USGTMap = Map as import는 어떤 클래스나 함수를 임포트 할 때 이름을 바꾸는 기능입니다. 다음..
-
17강. 코틀린에서 람다를 다루는 방법BackEnd/Kotlin 2024. 4. 7. 07:00
Kotlin 람다 Closure Kotlin 람다 Kotlin의 람다는 Java와 근본적으로 다른 한 가지가 있습니다. Java: 함수는 변수에 할당되거나 파라미터로 전달할 수 없습니다. (2급 시민) Kotlin: 함수가 그 자체로 값이 될 수 있습니다. 변수에 할당할 수도, 파라미터로 넘길 수도 있습니다. (1급 시민) 다음은 Kotlin에서 람다를 만드는 방법과 호출하는 방법입니다. fun main() { val fruits = listOf( Fruit("사과", 1_000), Fruit("사과", 1_200), Fruit("사과", 1_200), Fruit("사과", 1_500), Fruit("바나나", 3_000), Fruit("바나나", 3_200), Fruit("바나나", 2_500), Fr..
-
16강. 코틀린에서 다양한 함수를 다루는 방법BackEnd/Kotlin 2024. 4. 6. 07:25
확장함수 infix 함수 inline 함수 지역함수 확장함수 확장함수는 Kotlin의 목표인 Java와의 100% 호환을 기반으로 기존 Java로 만들어진 라이브러리를 유지보수, 확장할 때 Kotlin 코드를 덧붙이기 위해 만들어 졌습니다. 클래스 안에 있는 메서드처럼 호출할 수 있지만, 함수는 밖에 만들 수 있습니다. 다음은 String 클래스의 확장함수 lastChar() 코드입니다. fun main() { val str = "ABC" println(str.lastChar()) // 멤버 함수처럼 사용합니다. } fun String.lastChar(): Char { // fun 확장하려는클래스.함수이름(파라미터): 리턴타입 return this[this.length - 1] // this를 이용해 실..
-
15강. 코틀린에서 배열과 컬렉션을 다루는 방법BackEnd/Kotlin 2024. 3. 21. 05:00
배열(Array) 컬렉션(Collection) - List, Set, Map 컬렉션의 null 가능성 Java와 함께 사용할 때 주의할 점 배열 배열은 잘 사용하지 않습니다. Effective Java에도 '배열보다 리스트를 사용하라'라고 되어 있습니다. 다음은 배열을 사용한 Java 코드입니다. int[] array = {100, 200}; for (int i = 0; i < array.length; i++) { System.out.printf("%s %s", i, array[i]); } Kotlin으로 구현하면 다음과 같습니다. val array = arrayOf(100, 200) for (i in array.indices) { println("${i} ${array[i]}") } for ((idx,..
-
14강. 코틀린에서 다양한 클래스를 다루는 방법BackEnd/Kotlin 2024. 3. 13. 22:00
Data Class Enum Class Sealed Class Data Class 다음은 계층간의 데이터를 전달하기 위한 Java의 DTO(Data Transfer Object) 클래스입니다. DTO 클래스에는 다음과 같은 항목들이 존재하며, IDE를 활용하거나 lombok을 사용해 생성할 수 있습니다. 데이터(필드) 생성자와 getter equals, hashCode toString public class JavaPersonDto { private final String name; private final int age; public JavaPersonDto(String name, int age) { this.name = name; this.age = age; } public String getName..
-
13강. 코틀린에서 중첩 클래스를 다루는 방법BackEnd/Kotlin 2024. 3. 8. 05:30
중첩 클래스의 종류 코틀린의 중첩 클래스와 내부 클래스 중첩 클래스의 종류 static을 사용하는 중첩 클래스 밖의 클래스 직접 참조 불가 static을 사용하지 않는 중첩 클래스 내부 클래스(Inner Class) 밖의 클래스 직접 참조 가능 지역 클래스(Local Class) 메서드 내부에 클래스 정의 익명 클래스(Anonymous Class) 일회성 클래스 클래스 안에 클래스가 있는 종류는 두 가지입니다. static을 사용하는 중첩 클래스 static을 사용하지 않는 내부 클래스(Inner Class) 다음은 JavaHouse 안에 LivingRoom 내부 클래스(Inner Class)가 존재하는 Java 코드입니다. public class JavaHouse { private final Strin..
-
12강. 코틀린에서 object 키워드를 다루는 방법BackEnd/Kotlin 2024. 3. 7. 22:30
static 함수와 변수 싱글톤 익명 클래스 static 함수와 변수 다음은 static 함수와 변수를 가지는 JavaPerson 클래스입니다. public class JavaPerson { private static final int MIN_AGE = 1; // static 변수 private final String name; private final int age; private JavaPerson(String name, int age) { this.name = name; this.age = age; } public static JavaPerson newBaby(String name) { // static 함수 return new JavaPerson(name, MIN_AGE); } } Kotlin으로..
-
11강. 코틀린에서 접근 제어를 다루는 방법BackEnd/Kotlin 2024. 3. 7. 22:00
자바와 코틀린의 가시성 제어 코틀린 파일의 접근 제어 다양한 구성요소의 접근 제어 자바와 코틀린을 함께 사용할 경우 주의할 점 자바와 코틀린의 가시성 제어 접근 지시어 Java Kotlin public 모든 곳에서 접근 가능 protected 같은 패키지 또는 하위 클래스에서만 접근 가능 선언된 클래스 또는 하위 클래스에서만 접근 가능 default 같은 패키지에서만 접근 가능 X internal X 같은 모듈에서만 접근 가능 private 선언된 클래스 내에서만 접근 가능 Kotlin에서 패키지는 namespace 관리용이기 때문에 Java의 protected와 의미가 다릅니다. Kotlin에서는 default가 사라지고, 모듈간의 접근을 통제하는 internal이 생겼습니다. 모듈: 한 번에 컴파일 ..