전체 글(165)
-
240523_디모의 코틀린 강의 #19강. 제너릭
유튜브 - 디모의 코틀린 문법 강의 정리 #19강. 제너릭 1. 제너릭: 함수나 클래스 선언 시 고정적인 자료형 대신 실제 자료형으로 대체되는 타입 파라미터(, , 등)를 받아 사용하는 방법 - 캐스팅연산을 통해서도 같은 작업이 가능하지만, 캐스팅연산 시 속도가 저하될 수 있다는 문제가 존재함. - 타입 파라미터에 특정 자료형이 할당되면 제너릭을 사용하는 모든 코드가 할당된 자료형으로 대체됨 => 캐스팅연산 없이도 자료형 그대로 사용 가능 * 특정한 수퍼클래스를 상속받은 클래스 타입으로만 제너릭을 제한하려면 => 꼴로 작성하기. for main(){ UsingGeneric(A()).doShouting() // A가 소리친다 UsingGeneric(B()).doShouting() //..
2024.05.23 -
240522_디모의 코틀린 강의 #18강. 클래스의 다형성
유튜브 - 디모의 코틀린 문법 강의 정리 #18강. 클래스의 다형성 1. 다형성: 클래스의 상속에서, 수퍼클래스를 서브클래스로 / 서브클래스를 수퍼클래스로 인식할 수 있는 개념 2. 업캐스팅(Up-Casting): Cola 인스턴스를 Drink 변수에 담는 것var a:Drink = Cola() 3. 다운캐스팅(Down-Casting): 업캐스팅된 인스턴스를 하위 자료형으로 변환하는 것 - 다운캐스팅 시 별도의 연산자인 'as', 'is'가 필요함 - as: 변수를 호환되는 자료형으로 변환해주는 캐스팅 연산자var a:Drink = Cola() // 업캐스팅a as Cola // 다운캐스팅과 동시에 자료형 변환 - is: 변수가 자료형에 호환되는지 확인한 후 변환하는 캐스팅 연산자(조건문과 함께 ..
2024.05.22 -
240521_디모의 코틀린 강의 #17강. 익명객체와 옵저버 패턴
유튜브 - 디모의 코틀린 문법 강의 정리 #17강. 익명객체와 옵저버 패턴 1. 옵저버 패턴: event(키의 입력, 터치 발생, 데이터 수신 등 함수로 직접 요청하지 않았지만 시스템, 루틴에 의해 발생하는 동작)가 발생할 때마다 즉각 처리하게 만드는 프로그래밍 패턴 - 옵저버 패턴에 필요한 2개의 클래스: event 수신 클래스, event 발생/전달 클래스 fun main(){ EventPrinter().start()}interface EventListener{ fun onEvent(count:Int)}class EvetPrinter : EventLister{ override fun onEvent(count:Int){ println("${count} - ") } fun st..
2024.05.20 -
240520_디모의 코틀린 강의 #16강. 오브젝트
유튜브 - 디모의 코틀린 문법 강의 정리 #16강. 오브젝트 1. 오브젝트: 단 하나의 객체만으로 공통적인 속성이나 함수를 사용해야 하는 코드에서 별도의 클래스 없이 object로 대체할 때 사용(인스턴스 생성 X) fun main(){ println(Counter.count) Counter.countUp() Counter.countUp() println(Counter.count) Counter.clear() println(Counter.count) // 0 2 0 출력}// object는 최초 사용 시 자동 생성, 이후에는 코드 전체에서 공통으로 사용// -> 종료 전까지 공통으로 사용할 내용들을 묶어서 만드는 것이 좋음object Counter { var count = 0..
2024.05.20 -
240517_디모의 코틀린 강의 #15. 스코프 함수
fun main(){ var price = 5000 var a = Book("디모", 10000).apply{ name = "[초특가]" + name discount() } a.run{ println("상품명: ${name}, 가격: ${price}원") }} // 결괏값: 상품명: 디모, 가격: 5000원// run이 인스턴스 내 price 속성보다 run이 속한 main함수의 price 변수를 우선시하여// 8000원이 아니라 5000원으로 출력// let 함수로 대체fun main(){ var price = 5000 var a = Book("디모", 10000).apply{ name = "[초특가]" + name ..
2024.05.20 -
240516_디모의 코틀린 강의 #14. 고차함수와 람다함수
유튜브 - 디모의 코틀린 문법 강의 정리 #14강. 고차함수와 람다함수 1. 고차함수: 함수를 클래스에서 생성한 인스턴스처럼 취급하는 방식 fun main() {b(::a) // 함수 b를 호출(함수 a를 고차함수 형태로 파라미터화)}fun a(str:String) { println("$str 함수 a")}fun b(function: (String) -> Unit){ // 고차함수를 파라미터로 받아올 때: (자료형, 자료형...) -> 자료형(반환형) function("b가 호출한")}// 결괏값: b가 호출한 함수 a 2. 람다함수: 고차함수식을 단순화해서 표현fun main() {b(::a) val c:(String) -> Unit = { str:String -> println("$str 람다함수"..
2024.05.20