본문 바로가기

Kotlin32

[코틀린] 상속 상속 기본적으로 코틀린의 모든 클래스는 Any 클래스의 하위 클래스가 되며, 상위 클래스를 따로 명시하지 않으면 Any클래스를 상속받게 됨. 코틀린에서는 상속 가능한 클래스(상위 클래스)를 선언할 때 open이라는 키워드를 사용한다. 자바에서는 final 키워드를 사용하지 않는 이상 기본적으로 모두 상속 가능한 클래스이다. ​ open class Person { //묵시적으로 Any로부터 상속된다. } class Student : Person() { //기반 클래스로부터 상속됨, 다른 클래스로 상속 불가 } 다형성 메소드들이 같은 이름을 사용하지만 매개변수가 다르거나 구현 내용이 달라서 다양한 기능을 수행할 수 있게 하는 것 1. 오버로딩 (Overloading) - 동일 클래스의 같은 이름의 메소드를 .. 2020. 9. 18.
[코틀린] break와 continue에 라벨 사용 break,cotinue 에 라벨 사용 여러 반복문, 조건문을 중첩해서 사용하는 경우 라벨링을 통해서 break, continue문 사용할 때 어느 곳으로 향할지 알릴 수 있다. first@ for(i in 1..10) { println("처음") second@ for(j in 1..10) { println(j) break@first } } //결과 : 처음 1 first@ 라벨이 붙은 바깥 반복문이 멈춘다. continue도 마찬가지로 사용 ( first 라벨이 붙은 반복문이 해당 턴을 넘기고 진행한다) first@ for(i in 1..10) { println("처음") second@ for(j in 1..10) { println(j) break@second } } /*결과 : 처음 1 처음 1 처음.. 2020. 9. 18.
[코틀린] 함수 종류들 인라인 함수 (Inline Function) 해당 함수가 호출되는 곳에 함수 본문의 내용을 모두 복사해 넣어 함수의 분기없이 처리 코드 성능 높임 내용이 대게 짧음 CPU, 메모리 비용 아낌 fun main() { temp(3,5) temp(2,7) //인라인 키워드가 없으면 2번 분기 } inline fun temp(a : Int, b : Int) { println(a) println(b) } 확장 함수 (Extension Function) 기존 클래스에 내가 원하는 멤버 메서드를 추가해서 확장시켜서 사용할 수 있는 기능 fun main() { var a = 3 a.plusmore(5) } fun Int.plusmore(other : Int) : Int { println("wow") return thi.. 2020. 9. 18.
[코틀린] 콜백 함수 콜백 함수 Caller(호출을 하는 객체)가 Callee(호출된 객체)에게로 넘겨준 다음 Callee가 콜백 함수를 호출하면 Caller에서 결과를 받게 된다. 특정 이벤트가 발생하기까지 처리되지 않다가 이벤트가 발생하면 즉시 호출되어 처리되는 함수 사용자가 아닌 시스템이나 이벤트에 따라 호출 시점 결정 비동기적으로 작업한 결과물을 받아올 때 주로 사용 안드로이드에서는 OnClickListener가 대표적인 콜백 객체. class Callee { fun calcuate(callback: (Int) -> (Unit)) { for (i in 0..10) { callback(i) } } } fun main() { var callee = Callee() var name = "Park" callee.calcuat.. 2020. 9. 18.