목록분류 전체보기 (192)
안드로이드 개발자의 창고
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Infix 함수 함수를 연산자처럼 사용할 수 있는 함수이다. 값1 함수이름 값2 형태로 호출한다. 값1 객체를 통해 함수를 호출하고 매개변수로 값2를 전달한다. infix fun 값1의 타입.함수이름(값2를 담을 매개변수) : 반환타입 📖 예제 코드 fun main() { val v1 = 100 val r1 = v1.add2(50) println("r1 : $r1") // 150 var r2 = v1 add2 50 println("r2 : $r2") // 150 var obj1 = TestClass1() var obj2 = TestClass1() obj1.number1 = 100 obj2.number1 = 200 val r3 = obj1 ad..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 확장 함수 기존 클래스에 새로운 함수를 추가하는 개념이다. 추가된 메서드는 같은 프로그램 내에서만 사용이 가능하다. 자바 코드로 변경될 때 객체의 ID를 받아 사용하는 코드로 변경된다. 확장함수 정의 : 클래스명.추가할 메서드 이름 📖 예제 코드 fun main() { val str1 = "abcd" println(str1.getUpperString()) println(str1.printString()) } fun String.getUpperString() : String { return this.uppercase(Locale.getDefault()) } fun String.printString() { println("문자열 : $this")..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 익명 함수 함수의 이름이 없는 함수이다. 함수를 변수에 담아 관리할 때 사용한다. 고차함수와 관련이 깊다. 📖 예제 코드 fun main() { testFunction1() val testFunction2 = testFunction1

출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 인라인 함수 Java 코드로 변경될 때 자바 코드로 변경될 때 inline 함수를 호출하는 부분들은 함수 내부의 코드로 변경된다. 함수 호출 방식은 전체 코드양이 줄어들어 메모리를 적게 쓴다는 장점이 있지만 호출 시 코드 흐름이 이동하고 다시 돌아와야 하기 때문에 작업량이 늘어난다. 인라인 함수는 코드가 다소 늘어나지만 함수 호출과 관련된 작업을 하지 않는 장점이 있다. 딱 힌번만 사용하는 함수가 있을 때 사용하는 경우가 종종 있다. 📖 예제 코드 fun main() { testFunction1() testFunction1() testFunction2() testFunction2() } fun testFunction1(){ println("-..
🌟 이번 주 목표 🌟 [ V ] 코딩 테스트 입문 캘린더 완성 [ V ] 개인 프로젝트 디자인 수정 [ Δ ] 디자인패턴(MVVM / MVP) 학습 [ V ] 이번 주 강의 정리하여 블로그 작성 💜 Liked(좋았던 점) Kotlin 독학에서 배우지 못한 것을 배웠다 독학으로 알게 됐던건 ? 연산자와 lateinit 정도였는데 문법적으로 깊게 들어오니 모르는 부분이 많았다. 강의를 이전보다 열심히 듣고 주석을 많이 달아야겠다고 생각하게 되었다. 마냥 Java와 비슷하다고 생각했는데 Kotlin에서 지원하는 것도 많고, Companion과 Static처럼 이름은 다르지만 기능이 비슷한 부분도 있어서 배우는 데 뿌듯함이 느껴졌다. ✔️ Lacked (아쉬웠던 점) 디자인 요소 집착 recyclerView를 ..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 함수형 프로그래밍 Kotlin은 함수 사용을 보다 편리하게 할 수 있도록 다양한 개념들이 제공된다. 매개 변수로 받은 값을 연산하여 반환하는 함수를 만들 때 한 줄로 생략해서 만들 수 있다. 만약 수식을 계산하는 함수의 코드를 특정 부분에서만 사용한다면 람다로 만들어 사용할 수 있다. 📖 예제 코드 매개변수로 들어오는 값을 계산하여 반환하는 함수 fun testFun1(a1:Int, a2:Int) : Int{ return a1 + a2 } fun testFun2(a1:Int, a2:Int) :Int = a1 + a2 fun testFun3(a1:Int, a2:Int) = a1 + a2 ✔️ 코드 해석 testFun2와 testFun3은 tes..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 연산자 오버로딩 Kotlin은 모든 값을 객체로 만들어 객체로 관리하기 때문에 코드에 정수를 작성하면 정수로 관리하는 것이 아닌 정수 값을 관리하는 객체를 생성하여 객체로 관리하게 된다. 따라서 더하기 연산 자체가 일반적인 연산 방식으로 동작하지 못한다. Kotlin에서는 객체와 객체를 연산자를 통해 연산을 하게 되면 연산을 수행하는 것이 아닌 객체 내의 메서드를 호출한다. 호출된 메서드의 객체를 반환 받아 이를 연산의 결과로 사용하게 된다. 📖 예제 코드 class TestClass(var a1:Int, var a2:Int){ operator fun plus(target:TestClass):TestClass{ var r1 = this.a1 ..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 범위 지정 함수 객체를 생성할 때 파라미터에 값을 설정하는 것과 관련이 있다. let, apply, run, with, also 등이 있다. 📖 예제 코드 객체를 생성할 TestClass1 class TestClass1(var a1:Int, var a2:Int){ var a3:Int = 0 var a4:Int = 0 fun testMethod1(){ println("a1 : $a1") println("a2 : $a2") println("a3 : $a3") println("a4 : $a4") } } let 객체에 접근할 때 it 변수를 사용해야 한다. 코드 블럭 마지막에 작성된 값이나 수식을 반환해준다. let 객체 생성 후 나중에 프로퍼티에 ..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 고차 함수 함수를 매개변수로 받거나 반환 타입이 함수인 함수를 고차 함수라고 부른다. 함수 호출 시 전달하는 함수와 반환 하는 함수는 람다식을 사용할 수도 있다. 📖 예제 코드 ✔️ 매개변수로 함수를 받는 함수 fun testFunc1(a1:Int, a2:Int, m1:(Int, Int) -> Int){ val r1 = m1(a1, a2) println("testFun1 r1 : $r1") } fun main(){ val t1 = fun(x1:Int, x2:Int) : Int{ return x1 + x2 } testFunc1(100, 200, t1) testFunc1(100, 200, fun(x1:Int, x2:Int) : Int { retu..

출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Sealed Class란? 열거형은 특정 값을 의미하는 상수들을 모아 관리하는 개념이라면 Sealed Class를 객체를 모아 관리하는 개념이다. 열거형의 경우 상수에 지정된 값은 절대로 변경이 불가능 하지만 Sealed Class를 객체를 관리하는 개념이므로 객체가 가지고 있는 변수에 값을 설정하여 지정된 값을 변경하는 것이 가능하다. 열거형 사용 시 상수가 의미하는 값을 수시로 변경하거나 다양한 형태로 사용하고자 할 때 사용한다. 📖 예제 코드 fun main() { val s1 = Number1.OneClass(100, 200) val s2 = Number1.TwoClass(300) val s3 = Number1.ThreeClass(10..