[KOTLIN] Scope 함수
·
KOTLIN
Scope 함수 특정 객체의 컨텍스트(Object Context) 내에서 특정 동작을 실행하기 위한 목적만을 가진 함수 Scope 함수를 람다로 사용하게 되면 임시로 Scope를 형성하는데 해당 Scope내에서 객체의 이름을 일일히 참조할 필요 없이 객체를 접근하고 핸들링할 수 있음 let / run / with / apply / also 총 5가지 함수가 있으며, 기본적으로 객체에 붙어 있는 코드 블록을 실행함 Apply fun main() { val book = Book("코틀린 책", 10000).apply { //apply scope안에서 직접 인스턴스의 속성과 함수를 사용함 name = "특가 " + name discount() } println("${book.name}은 가격 : ${book...
[KOTLIN] 컬렉션
·
KOTLIN
Collections (콜렉션) Kotlin은 표준 라이브러리는 집합, 목록 및 지도와 같은 기본 컬렉션 유형에 대한 구현을 제공 기본적으로 Mutable(가변)과 Immutable(불변)을 별개로 지원 Koltlin의 상속구조는 위에 이미지처럼 되어있으며 List, Set, Map과 같은 자료형을 제공함 List 순서가 있는 데이터 집합이며 중복을 허용 데이터를 삭제, 삽입을 해도 순서를 지키는 컬렉션임 Set 순서를 유지하지 않는 데이터 집합이며, 중복되는 데이터가 없음 null객체를 가질 수 있음 Map Key, Value 방식의 데이터 집합 순서를 유지하지 않으며, Key는 중복이 불가함 List / Set / Map 생성함수 요약 불변객체 생성 가변객체 생성 List listOf() mutabl..
[KOTLIN] OPEN 키워드
·
KOTLIN
Open 코틀린에서 특정 클래스의 상속을 허용할 때 해당 클래스 앞에 open 키워드를 사용 오버라이드를 허용하고 싶은 메소드나 프로퍼티에도 앞에 open 키워드를 사용 코틀린 클래스는 기본이 final public.. Open 사용 예시 //open 키워드 선언해서 상속이 가능하도록 함 open class Drink { var name = "음료" open fun drink() { println("${name}를 마시자") } } //open 키워드 선언한 클래스를 상속받았음 class Cola : Drink() { var type = "콜라" override fun drink() { println("${name}중 ${type}를 마시자") } } fun main() { //음료를 마시자 var dr..
[KOTLIN] DATA CLASS
·
KOTLIN
Data Class (데이터 클래스) 자바에서 자바빈 패턴을 자동으로 생성해주는 클래스라 이해함 Data Class 때문에 Lombok을 사용 안해도 되서 좋은 듯 Data Class 특징 슈퍼 클래스를 가질 수 없음 주 생성자에 기본 파라미터가 1개 이상 존재해야하며, val or var로 선언해야함 abstract / open / sealed / inner 키워드 사용 불가 Data Class에서 제공하는 것 hashCode() : 해시값 계산시 사용 copy() : 객체 복사 equals() : 데이터의 값 비교 toString() : 데이터를 문자열로 쉽게 알아보고 싶을 때 사용 componentsN() : 구조 분해 기능 Data Class 사용 예시 data class Member ( val ..
[KOTLIN] OBJECT 키워드
·
KOTLIN
Object 키워드 Object 키워드는 object expression(객체 표현식) 이랑 object declartion(객체 선언) 두가지 방법으로 사용 object expression으로 익명 클래스의 객체를 생성할 때 사용 object declaration으로 사용시 접근 시점에서 하나의 객체만 생성됨 코틀린은 Object 키워드를 통해 싱글턴 패턴을 쉽게 사용 가능함 object declaration과 companion object를 이해하기 위해 작성 Object declaration object Car { fun print() { println("자동차") } } object 키워드를 붙여서 생성해주면 싱글톤 패턴이 적용됨 코틀린은 object declaration을 통해 내부적으로 thr..