본문 바로가기

Study

(47)
[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..
[Algorithm] 정렬: 계수 정렬, 선택 문제 + 항공대학교 이인복 교수님의 알고리즘 해석 및 설계 과목 내용를 정리한 글입니다. 계수 정렬 (counting sort) - 범위가 작은 수들을 빠르게 정렬할 때 사용된다. 1. 각 수가 나온 횟수를 센다. (자신보다 작은 원소의 개수를 센다.) 2. 1 결과를 이용하여 각 수보다 작은 숫자가 몇 개 있는지 센다. (누적합 이용) ex) {5, 9, 3, 6, 9, 5, 2, 10, 1} 1. 하나의 숫자를 찾아갈 수 있는 시간을 Θ(1)이라고 가정할 때, 각 숫자가 나온 횟수를 세는데 Θ(n) 2. 다시 숫자를 정렬된 리스트에 채워넣는데 Θ(n) => Θ(n) ex) {12387, 90123, 39735, 9012344} - (최대값 - 최소값)의 범위 수..