Kotlin 31

내일배움캠프 12.21 TIL

lazy lazy 사용예시 fun main(){ var s1 = Student() s1.name = "참새" s1.displayInfo() s1.age = 10 s1.displayInfo() } class Student { lateinit var name:String var age:Int = 0 val address: String by lazy { println("address 초기화") "seoul" } fun displayInfo() { println("이름은: ${name} 입니다.") println("나이는: ${age} 입니다.") println("주소는: ${address} 입니다.") }} - by lazy 후 값을 입력해주는 방법으로 사용한다. - 사용하는 시점에 값을 초기화 하고 대입한다..

Kotlin 2023.12.22

스코프 함수

람다함수의 특별한 케이스 val c: (String) -> Unit = { str -> println("$str 람다함수") println("2") println("3") } val calculate: (Int, Int) -> Int = { a, b -> println(a) // 람다함수도 println(b) // 여러구문 사용이 가능하다 a+b // 마지막 구문 a + b의 값을 Int형으로 반환한다. } 람다함수도 여러 구문을 사용할 수 있다. val a:() -> Unit = { println("파라미터가 없다,,") } 파라미터가 없는 람다함수는 실행할 구문들만 나열하면 된다. val c: (String) -> Unit = { println("$it 람다함수") } // 중괄호의 파라미터 이름을 ..

Kotlin 2023.12.22

내일배움캠프 12.20 TIL

ArrayList Empty ArrayList fun main() { val arrayList = ArrayList() arrayList.add("One") arrayList.add("Two") println("......print ArrayList......") for (i in arrayList) { println(i) } } ArrayList는 immutable이라 var를 사용할 수 없다. 다만 객체의 내용은 변경할 수 있다. 컬렉션을 사용하는 ArrayLIst fun main() { val arrayList: ArrayList = ArrayList(5) val list: MutableList = mutableListOf() list.add("one") list.add("two") arrayLis..

Kotlin 2023.12.22

Set, Map

Set 중복되는 데이터를 삭제하는 컬렉션이다. fun main() { val fruits = setOf("Orange", "Apple", "Grape", "Apple", "Mango", "Orange") // println(fruits.size) // 출력값 4 (중복된 Apple, Orange는 하나로 카운트) println(fruits.toSortedSet()) // 알파벳 순서로 나열 val newFruits = fruits.toMutableSet() // 뮤터블 리스트로 변환 newFruits.add("water Melon") newFruits.add("Pear") // print(newFruits) // water melon과 pear가 추가되어 출력 print(newFruits.elementA..

Kotlin 2023.12.22

내일배움캠프 12.19 TIL

Data Class 데이터클래스 예시 package ch01 data class User(val id: Long, var name: String) // 매개변수는 하나 이상 반드시 입력해야함. //데이터 클래스는 추상, 오픈, 봉인, 내부 클래스일 수 없다. fun main() { val user1 = User(1, "Sunghyeon") // 데이터 클래스 객체 생성 // val name = user1.name // Sunghyeon을 지목 // println(name) user1.name = "Michael" // user1은 더이상 Sunghyeon이 아니다. val user2 = User(1, "Michael") println(user1.equals(user2)) //any 타입이기에 equlas..

Kotlin 2023.12.22

내일배움캠프 12.18 TIL

# lateinit > lateinit 사용 예시 ```kotlin fun main() { var myCar = Car() myCar.owner // init에서 초기화 하지 않을 시 오류가 발생한다. } class Car() { lateinit var owner: String // 나중에 init에서 초기화 하겠다는 코드 init { this.owner = "Frank" } } ``` - lateinit을 사용 후 init에서 초기화를 하지 않을 경우 my.Car.owner 부분은 작동하지 않는다. > GETTER / SETTER ```kotlin package ch01 fun main() { var myCar = Car() println(myCar.myBrand) myCar.maxSpeed = 240..

Kotlin 2023.12.22

내일배움캠프 12.15 TIL

nullable Safe Call / Elvis Operator fun main() { var nullableName: String? = "sunghyeon" // nullableName = null var len2 = nullableName?.length nullableName?.let { println(it.length) } // nullableName이 null이 아닐 때, sunghyeon의 폰트 수를 출력 val name = nullableName ?: "Guest" println("name is $name") // null일 경우에 ?: 뒤의 값이 출력된다. println(nullableName!!.toLowerCase()) // non-null타입. 변수에 값이 있다고 확신할 때 사용함 } ..

Kotlin 2023.12.22

객체지향 프로그램 기초개념 5가지

간단한 기본 개념 정리 5가지 basic concepts 1. 변수와 타입 2 흐름제어 3. 함수 4. 컬렉션 5. 클래스와 객체 (상속을 가진) 변수와 자료형 변수란 어떤공간에 어떤값을 저장하기위한 이름을 가진 공간이다. 저장공간을 나타내기 위해 고유의 이름 (id, identifier)을 지정해주어야 한다. 이름을 통해 데이터로 접근할 수 있기 때문이다. 흐름제어 Control Flow 흐름 제어는 조건에 맞는 경우에만 코드를 실행시킨다. 그 조건이 맞는 한 코드를 반복 실행하게 해준다. 특정 코드를 여러 번 반복 실행할때가 많아 매우 유용하게 사용됨 함수 함수는 코드를 나눠주고 필요시에 코드 블록을 실행하게 해준다. 함수의 장점은 코드를 쉽게 나누고 정리해주는 것이다. 코드를 재사용할 때 유용하게 ..

Kotlin 2023.12.22