JetPack-kotlin정리

kotlin 간단하게 정리

Featured image

Kotlin

변수 및 함수 선언

var num1 = 10
var num2 : Int = 10
var num3 : Int
num3 =10

va; num4 =20
var Arr = arrayOf(1,2,3,4,5) //값 변경이 가능

var list = listOf(1,2,3,4,5) // 값 변경이 불가능

var ArrayList = arrayListOf(1,2,3,4,5) // 값 변경이 가능

fun add(num1: Int, num2: Int): Int{
    return num1 + num2
}

fun add(num1:Int,num2:Int) = num1 + num2
val if_x =2

if(if_x %2 == 0) print("짝\n")
val isEven = if(if_x%2 == 0 ) "짝\n" else "홀\n"
- when문(switch의 상위호환느낌)
val if_x =2

when (if_x){
    1 -> print("1입니다\n")
    2 -> print("2입니다\n")
    3,4,5-> print("3,4,5입니다\n")
    in 6..20 -> print("6~20사이\n")
}

for( i in 0..9) { // 1씩 증가
	print(i)
}

for( i in 0..9 step 3) { // 3씩 증가
	print(i)
}

for( i in 9 downTo 0) { // 1씩 감소
	print(i)
}

for( i in 9 downTo 0 step 3) { // 3씩 감소
	print(i)
}

클래스

class Person(var name: String, val age: Int) {
    init {
        println("나는 ${this.name} , ${this.age}살 입니다.")
    }
    constructor(name: String, age: Int, gender: String) : this(name, age) {
        this.gender = gender
       
    }
}

- kotlin에서 초기화는 클래스 생성할때 괄호안에서 정의합니다.

- inint은 초기화 블록으로 클래스를 생성할때 필요한 코드를 작성합니다.

fun main() {
    val a : Animal = Dog("꼬봉", 7)
    a.introduce()
    val b = Tom("톰", 23)
    b.intro()
    b.tomSound()
    val c = Minsu("존", 15)
    c.intro()
    c.kimchi()
    val d = Jhon("민수", 30)
    d.intro()
    d.angry()
}

open abstract class Person(var name: String, var age: Int, var etc: String) {
    open abstract fun intro()
}

class Tom(name: String, age: Int) : Persone(name, age, "까칠함") {
    override fun intro() { // open 이므로 override 가능
        println("저는 $age 살 $name 입니다.")
    }

    fun tomSound() {
        println("나는 톰이야")
    }
}

class Jhon(name: String, age: Int) : Person(name, age, "멍청함"), Bully {
    override fun introduce() {
        println("저는 $age 살 $name 입니다.")
    }

    override fun angry() {
        println("나는 화나있어")
    }
}

class Minsu(name: String, age: Int) : Person(name, age, "한국인") {
    override fun introduce() {
        println("저는 $age 살 $name 입니다.")
    }
    fun kimchis() {
        println("김치")
    }
}

interface Bully {
    fun angry()
    val name: String
}