Kotlin:: 기초
🙈

Kotlin:: 기초

Created
Jun 11, 2024 03:42 AM
Last edited time
Last updated June 11, 2024
Tags
Language
Language
kotlin
URL

Intro::

코틀린에 대한 학습 정리본입니다.
 

코틀린의 장점

  • 자료형에 대한 오류를 미리 잡을 수 있는 정적 언어
    • 정적 형식: 컴파일러가 타입을 검증해준다.
  • 널 포인터로 인한 프로그램의 중단을 예방할 수 있다.
    • 보통 개발자들은 코틀린의 이런 특징을 NPE에서 자유롭다라고 합니다.
    • NPE는 Null Pointer exception 의 축약어
  • 데이터형 선언 시 널 가능한 형식과 불가능한 형식 지원
  • 자바와 완벽하게 상호 운영이 가능하다.
  • 아주 간결하고 효율적
  • 함수형 프로그래밍과 객체 지향 프로그래밍이 모두 가능
  • 세미콜론을 생략가능
 
package main.kotlin import java.util.Scanner import kotlin.random.Random fun main() { val username: String = "Kildong"// 불변 var changeName = "A"// 가변 println("$username && ${changeName}!!") var num1 = 10 var num2 = 20 println(kotlin.math.max(num1, num2)) // 랜덤 val rand = Random.nextInt(0, 100)// 0 ~ 99 println(rand) // 입력 // val reader = Scanner(System.`in`) // val num = reader.nextInt() // println(num) //조건 var result = if (num1 > 10) { "num1 > 10" } else { "num1 <= 10" } println(result) when {// switch 문과 유사 num1 > 10 -> { println("num1 > 10") } else -> { println("num1 <= 10") } } val items = listOf(1, 2, 3, 4, 5) // for 문 for (item in items) { println(item) } items.forEach{ item -> println(item) } for (i in 0..(items.size - 1)) { println(items[i]) } // 리스트 var changableItems = mutableListOf(1, 2, 3, 4, 5) changableItems.add(5) changableItems.removeAt(0) // 배열 -> 잘사용안함 val arrays = arrayOf(1, 2, 3) arrays[0] = 10 try { val res = items[5] } catch (e: Exception) { println(e.message) } // nullable var nameNull: String? = null nameNull = "notNull" nameNull.let { println(nameNull) } val john = Person("John", 20) println(john) println(john.hobby) val mike = DataPerson("mike", 22) println(mike) // 타입 체크 val dog : Animal = Dog() val cat = Cat() if (dog is Dog) { println("왈왈") } if (dog is Animal) { println("@#$%^") } myFunc(){ println("함수 호출") } } fun sum(a: Int, b: Int, c: Int = 0) : Int {// c는 사용안해도 됨, 디폴트값 지정 return a + b + c } fun minus(a: Int, b: Int) = a + b class Person(val name: String, var age: Int) { var hobby = "축구" private set get() = "취미 : $field" } data class DataPerson(val name: String, var age: Int) { init { println("init") } } // 상속 abstract class Animal { open fun move() {// open 키워드가 있어야 자식에서 상속을 하던 overide를 하던 함 println("이동") } } class Dog : Animal(), Drawable { override fun move() { println("껑충") } override fun draw() { TODO("Not yet implemented") } } class Cat : Animal(), Drawable { override fun move() { println("깡총") } override fun draw() { TODO("Not yet implemented") } } // 인터페이스 interface Drawable { fun draw() } // 제네릭 class Box<T>(val value: T) { } // 콜백함수 fun myFunc(callBack : () -> Unit) { println("함수 시작!!") callBack() println("함수 끝!!") } suspend fun Fun1() {}
 
 
 

References::

Loading Comments...