20강. 코틀린의 어노테이션어노테이션이란?어노테이션을 붙여 개발자에게 의견을 알리거나 특별한 일이 일어나도록 할 수 있음어노테이션 만드는 방법annotation class Shapeannotation class Shape( val test: String, val number: Int, val clazz: KClass)KClass코드로 작성한 클래스를 표현하는 클래스val kClass: KClass = Annotation::class@Retention우리의 어노테이션이 저장되고 유지되는 방식을 제어@Retention(AnnotationRetention.RUNTIME)annotation class ShapeRetention의 종류SOURCE: 어노테이션이 컴파일때만 존재BINARY: 어노테이..
17강. 연산자 오버로딩연산자 오버로딩 특징operator키워드가 fun앞에 붙음함수의 이름과 파라미터가 정해져있음예시 - Pointdata class Point ( val x: Int, val y: Int) { fun zeroPointSymmetry() = Point(-x, -y)}fun main() { val point = Point(20, -10) println(point.zeroPointSymmetry())}zeroPointSymmetry() 메서드를 통해 점대칭을 구하고 있음하지만, 연산자 오버로딩을 통해 좀더 간단히 사용 가능unaryMinus(): 단항 마이더스 연산자data class Point ( val x: Int, val y: Int) { o..
13강. 고차 함수와 함수 리터럴고차함수파라미터로 함수를 받거나 함수를 반환하는 함수두 수를 연산하는 함수파라미터에 함수를 받고있음, 즉 고차함수임fun compute(num1: Int, num2: Int, op: (Int, Int) -> Int): Int { return op(num1, num2)}compute를 호출하는 방법람다식, 익명함수를 함숫값 또는 함수 리터럴이라고 함리터럴: 소스 코드의 고정된 값을 나타내는 방법fun main() { // 람다식 compute(5, 3) { a, b -> a + b } // 익명함수 compute(5, 3, fun(a: Int, b: Int) = a + b) // 익명함수 + 타입추론 compute(5, 3, fun(a, b..
8강. lateinit, lazy()class Person( private val name: String) { val isKim: Boolean get() = this.name.startsWith("최") // 홍길동 -> 홍** val maskingName: String get() = name[0] + (1 until name.length).joinToString("") { "*" }}fun main() { val person = Person("홍길동")}클래스 인스턴스화가 이뤄지며 name에 '홍길동'이 들어감만약, 인스턴스화 시점과 프로퍼티 초기화 시점을 분리하고 싶다면?테스트 코드 작성테스트 코드의 특징은 각 테스트 메소드가 Person을 각각 ..
1강 제네릭과 타입 파라미터Cage 클래스동물을 넣거나 꺼낼 수 있음methodsgetFirst() - 첫번째 동물을 가져옴put(animal) - 동물을 넣는다.moveFrom(cage) - 다른 cage에 있는 동물을 모두 가져온다.Codeclass Cage { private val animals: MutableList = mutableListOf() fun getFirst(): Animal { return this.animals.first() } fun put(animal: Animal) { this.animals.add(animal) } fun moveFrom(cage: Cage) { this.animals.addAll(cage..
개발 환경 Intelli J java 8 kotlin 1.2.71 mysql spring boot 2.1 spring data jpa gradle 설정 Intelli J 최신버전으로 유지해줘야 원활한 개발이 가능합니다. (사용 버전: 2019.1.3) Intelli J 코틀린 플러그인 설치 https://plugins.jetbrains.com/plugin/6954-kotlin/ Kotlin - Plugins | JetBrains The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio. plugins.jetbrains.com 코틀린 프로젝트 생성 Intelli J → File → New Project → Spring I..