enum enum은 class 앞에 있을때는 특별한 의미를 지니지만, 다른 곳에서는 이름에 사용할 수 있다. 이를 소프트 키워드(soft keyword)라고 부른다. enum class Color { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET; } 이름에 사용할 수 있다? 예를들어 class는 키워드다. class는 이름 자체로 사용할 수 없어서, class 라는 이름을 사용하려면 clazz 또는 aClass 등과 같이 사용해야한다. enum 예제 구현해보기 enum class Color2 ( val r: Int, val g: Int, val b: Int // 상수의 프로퍼티를 정의한다. ) { RED(255, 0, 0), ORANGE(255, 165, 0),..
클래스 선언 Kotlin은 기본적으로 public class가 생성된다. package _기본문법._4_클래스_프로퍼티 // default : public class `4_클래스`(val name: String) 프로퍼티 package _기본문법._4_클래스_프로퍼티 class `5_프로퍼티` ( val name: String, var isMarried: Boolean, ) 읽기 전용 프로퍼티 비공개 필드 필드를 읽는 단순한 공개 getter 를 만든다. val name: String, 쓸 수 있는 프로퍼티 비공개 필드 필드를 읽는 공개 getter 를 만든다. 필드를 쓰는 공개 setter 를 만든다. var isMarried: Boolean, getter 메서드를 직접 생성할 수 있다. package..
타입 추론 (Type Inference) 코를린은 변수 타입 생략이 가능하다. val answer = 42 // Type 생략 가능 val answer2 : Int = 42 // Type 명시 가능 변수 선언시 초기화를 함께 해주지 않는 경우, 타입을 명시해줘야한다. val answer3: Int // 초기화하지 않을시, 타입을 명시해줘야한다. nswer3 = 42 val - 변경이 불가능한 변수 (Immutable) val로 선언된 변수는 일단 초기화하고 나면, 재대입이 불가능하다. Java의 final 변수에 해당한다. // 변경 불가능한 함수 val a = 1 // a = 2 :변경이 불가능하다. val 참조 자체는 불변일지라도, 그 참조가 가리키는 객체의 내부 값은 변경이 가능하다. // val ..
코틀린 코드 맛보기 data class Person(val name: String, val age: Int? = null) fun main(args: Array) { val persons = listOf(Person("영희"), Person("철수", age = 29)) val oldest = persons.maxByOrNull {it.age ?: 0} println("나이가 가장 많은 사람 : $oldest") } JAVA 코드에 익숙해서 그런지, 코드가 눈에 잘 들어오지 않는다. 한줄 한줄 분석해보자. 아래의 내용들이 전부 이해는 되지 않지만, 책을 읽어가면서 내용들을 배울 때마다 아래 내용들에 포스팅 URL을 채워나갈 예정이다. property -> name, age Int? -> null이 될 수..
Kotlin 첫 입문 프로젝트 생성 인텔리J 프로젝트 생성 : [File] - [New] - [Project...] Main 클래스 생성 Main.kt 잘못된 예제 (X) Java 와 동일하게 Main 클래스 안에 main 메서드를 두었다. class Main { fun main(args: Array) { print("hello world") } } 정상적인 예제 (O) Kotlin은 Main 클래스 외부에 main 메서드를 선언한다. class Main { } // 코틀린은 main 메서드를 클래스 외부에 생성한다. fun main(args: Array) { print("hello world") } 결과 hello world