프로그래밍 언어/코틀린 기본
[코틀린 기초] const 프로퍼티, lateinit와 lazy를 활용한 프로퍼티 초기화, by 중간자 기호
lesson29 프로퍼티 초기화, lateinit, lazy 상수 만들기 자바에서는 final static 변수로 클래스의 읽기전용 상수를 만들었었다. 코틀린에서는 static 대신 companion object를 그리고 final 변수의 기능을 하는 val 변수 선언으로 메모리에 고정된 영약을 가진채 만들어지는 정적변수를 만들 수 있다. const는 컴파일 시간의 상수이다. val과 달리 컴파일 시간에 이미 값이 할당되도록하는 키워드 이다. 소스코드 fun main() { val foodCourt = FoodCourt() foodCourt.searchPrice(FoodCourt.FOOD_STEAK) foodCourt.searchPrice(FoodCourt.FOOD_PIZZA) foodCourt.sear..
[코틀린 기초] Set, Map
lesson 26 Set과 Map Set: 리스트와 달리 중복x, 순서 없음의 형태이다. java의 Set과 같다. 추가: add(데이터) 삭제: remove(데이터) 생성: setOf(요소1, 요소2, ...)
[코틀린 기초] Data Class, Enum Class
lesson 25 Data Class와 Enum Class Data Class 데이터를 다루는 데에 최적화된 class로 '5가지 기능'을 내부적으로 자동으로 생성해준다. 1. equals() => 내용의 동일성 체크 메소드 2. hashcode() => 클래스의 내용에서 고유한 코드를 생성하는 메소드 3. toString() => 포함된 속성을 보기 쉽게 나타내는 메소드 4. copy() => 객체를 복사하여 새 객체를 만들어 주는 메소드 다른 패러미터로 교체하여 복사할 수도 있다. ex) val a = Data("A", 7) val b = a.copy("B") 5. componentX() => 속성에 순서대로 접근할 수 있는 함수 ex) Data("A", 7) Component1()은 값 A Comp..
[코틀린 기초] 중첩 클래스, 내부 클래스
lesson 24 중첩 클래스, 내부 클래스 중첩클래스와 내부클래스는 클래스간의 연계성을 표현하여 코드의 가독성 및 작성 편의성이 올라갈 수 있으므로 알아두면 좋다. 중첩 클래스 생성방법 외부 클래스.중첩클래스()
[코틀린 기초] arguments 다루기, infix 함수
lesson 23 함수의 argument 다루는 방법, infix함수 패러미터를 받아야 하는 함수이지만 패러미터 없이 호출이 되었다면, 기본값으로 동작할 수 있도록 하면 좋지 않을까? => default argument 활용 함수 선언시 패러미터에 = 를 이용해 기본값을 설정할 수 있다! 코드예제 fun main() { deliveryItem("짬뽕") deliveryItem("책", 3) deliveryItem("노트북",30,"학교") // deliveryItem("김치찌개","집") => 오류 deliveryItem("선물", destination = "친구집") } fun deliveryItem(name: String, count: Int = 1, destination: String = "집"){..
[코틀린 기초] null 값처리, 동일한지 비교, 내용의 동일성 객체의 동일성
lesson 22 null 값처리, 동일한지 비교, 내용의 동일성 객체의 동일성 Null 관리 !! nullable 형태로 생성한 변수는 null check 없이는 컴파일 자체가 불가 !! 일일히 if문을 활용해서 null 체크하는 것을 방지하기 위해 여러 연산자가 추가되었다. ?. = (null safe operator) 참조 연산자를 실행하기전에 먼저 객체가 null인지 확인하고 null이라면 뒤따라 오는 구문을 실행 x ?: = (elvis operator) null 이라면 연산자 오른쪽 식의 실행하거나 객체를 선택함 대체됨 !!. = (non-null assertion operator) 참조연산자를 사용할 때 null 여부를 컴파일시 확인하지 않도록 하여. 의도적으로 방치하는 연산자이다. 즉 nu..
[코틀린 기초] 리스트, 문자열
lesson 20 리스트 리스트 종류 2개 1. List 생성시에 넣은 객체를 대체, 추가, 삭제 할 수 없다. 생성방법: listOf() 2. MutableList => java에서 활용한 ArrayList를 Kotlin에서도 똑같이 활용하는데. 여기서 MutableList는 ArrayList의 상위 클래스라고 한다. 따라서 MutableList와 ArrayList는 큰 차이가 없으니, ArrayList가 편한 사람은 ArrayList로 사용해도 된다 !! Mutable: 변할 수 있는 생성시에 넣은 객체를 대체, 추가, 삭제 가능 생성: mutableListOf() 추가 add(데이터) add(인덱스, 데이터) 삭제 remove(데이터) removeAt(인덱스) 무작위 섞기 shuffle() 정렬 s..
[코틀린 기초] 클래스의 다형성(업캐스팅, 다운캐스팅), 제너릭
lesson 18 클래스의 다형성 업캐스팅은 java와 같다. 선언시과 함수의 선언에서 파라미터에 가장 많이 쓰인다. 다운 캐스팅은 별도의 연산자가 필요하다. as와 is이다. as는 변수를 호환되는 자료형으로 변환해주는 캐스팅 연산자이다. is는 변수가 해당 자료형에 호환되는 지를 체크하고 변환까지 해주는 캐스팅 연산자이다. 코드예제 class open class Drink{ var name = "음료" open fun drink(){ println("${name}를 마십니다.") } } class Cola : Drink(){ var type = "콜라" override fun drink(){ println("${name}중에 ${type}을 마십니다.") } fun washDishes(){ print..