본문 바로가기

Study/Kotlin Study

(33)
[Kotlin] 하위 클래스 초기화 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. 초기화의 순서 상위 클래스 초기화 루틴 완료 후 하위 클래스 초기화 루틴 수행한다. - 상위 클래스가 갖고 있는 프로퍼티를 상속받아야하기 때문이다. open class Vehicle { init { println("Initializing Vehicle") } } open class Car : Vehicle() { init { println("Initializing Car") } } class Truck : Car() { init { println("Initializing Truck") } } fun main() { val truck = Truck() // Initializing Vehicle // Initializing C..
[Kotlin] 하위 클래스 선언 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. 하위 클래스 선언 상위 클래스 = 부모 클래스 = Super Class 하위 클래스 = 자식 클래스 = Sub Class ex) Activiy - MainActivity , Vehicle - FlyingVehicle - Aircraft + 하나의 클래스는 하나의 상위 클래스를 가질 수 있다. open 클래스 open으로 선언된 클래스는 상속이 가능하다. - open이 아닌 클래스는 상속이 불가능하다. : 뒤의 상위 클래스 ()는 상위 클래스 생성자 호출을 의미한다. - 필수적으로 상위 클래스의 생성자를 사전에 호출해야한다. 하위 클래스 객체는 모두 상위 클래스에도 소속된다. 멤버의 상속 -하위 클래스는 상위 클래스의 멤버를..
[Kotlin] Fragment 실습 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. build.gradle.kts 수정하기 android 블록 안에 코드를 추가한다. - XML 레이아웃 파일과 Kotlin간의 상호작용을 향상시켜주는 라이브러리를 활성화한다. - 자동으로 binding 클래스가 생성되어 XML 레이아웃과 상호작용이 가능하다. ex) MainActicity -> ActivityMainBinding 인스턴스 생성 ex) InputFragment -> FragmentInputBinding 인스턴스 생성 viewBinding{ enable = true } dependencies 블록에 코드를 추가한다. - dependency(종속성): 프로젝트에서 사용하려는 외부 코드를 프로젝트로 가져오는 방법 (..
[Kotlin] 영역 함수 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. 영역 함수 (Scope Function) run, let, with apl, apply, also 라는 다섯가지 영역함수가 존재한다. + run - let - with, apply - also 간 유사성이 있다. 다섯 가지를 모두 능숙하게 사용할 필요는 없으나 유사성이 있는 영역함수 중 한 두개는 쓸 줄아는 것이 좋다. 다섯가지 영역 함수에 대한 코드를 읽을 줄은 알아야한다. run 영역 함수 - 객체를 만들고 초기화하는 과정에서 많이 사용한다. - run()의 인자인 람다함수는 수신 객체의 메소드처럼 정의한다. => 즉 this는 수신 객체이다. - 마지막 문자의 반환값이 run()의 반환값이 된다. - 수신 객체와 연관..
[Kotlin] 확장 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. 클래스 확장 함수 - 이미 존재하는 클래스의 새로운 멤버를 확장할 수 있다. => 실제로 클래스에 멤버를 추가하는 것이 아니다. - 정의 후 기존 클래스 멤버와 동일하게 이용이 가능하다. // String 객체에 truncate 함수 확장 // String을 maxLength 길이로 자르는 함수 fun String.truncate(maxLength: Int):String { return if(length 즉, 이미 클래스에 존재하는 함수와 동일한 이름의 함수는 만들 필요가 없다. 타 패키지의 확장 함수 - 타 패키지에 정의된 확장 함수는 import가 필요하다. package kr.kau.util // String을 max..
[Kotlin] 함수형 프로그래밍 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. 고차 함수 - 함수를 파라미터로 받는 함수이다. fun initializeIntArray(n: Int, initializer: (Int) -> Int): IntArray { // initializer라는 (Int) -> Int 함수 타입의 변수를 파라미터로 받는다. // (Int) -> Int는 Int를 파라미터로 받아서 Int를 반환하는 함수 타입 val arr = IntArray(n) // 0으로 초기화 된 n개의 정수를 갖는 배열 for (i in 0 until n) { arr[i] = initializer(i) // initializer 함수에 i를 넣은 값을 arr[i]에 저장 } return arr } fun m..