본문 바로가기

Study/Kotlin Study

(33)
[Kotlin] 제네릭스 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. 제네릭과 파라미터 제네릭이란? => 클래스 내부에서 사용하는 특정 대상의 타입을 파라미터화 한 것 ex) ArrayList : T 타입을 가지는 원소의 ArrayList ex) HashMap : K타입의 키와 V타입의 값을 가지는 Entry의 HashMap + T, K V 를 타입 파라미터라고 한다. 제네릭을 사용하여 참조 변수 및 객체를 정의할 수 있다. - 타입 파라미터에 대한 실제 타입을 지정해야한다. - 타입 추론이 가능할 경우 타입 인자를 생략할 수 있다. fun main() { val list = ArrayList() list.add(5) list.add(6) // list.ad..
[Kotlin] 파일과 I/O 스트림 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. I/O 관련 클래스 InputStream: Byte 단위로 입력을 읽어 온다. - FileInputStream: 파일을 Byte 단위로 읽기 위한 클래스 OutputStream: Byte 단위로 출력한다. - FileOutputStream: 파일을 Byte 단위로 쓰기 위한 클래스 Reader: 문자 단위로 입력을 읽어 온다. - FileReader: 파일을 문자 단위로 읽기 위한 클래스 Writer: 문자 단위로 출력한다. - FileWriter: 파일을 문자 단위로 쓰기 위한 클래스 import java.io.FileWriter fun main() { val writer = File..
[Kotlin] 컬렉션 유틸리티 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. ++ 직접 코딩하라는 문제는 나오지 않고, 코드를 주고 어떤 의미인지 적는 문제가 출제됩니다. Collection의 생성 fun main() { val a1 = listOf(1, 2, 3) // unmutable list 생성 println(a1) // [1, 2, 3] // a1.add(4) 불가능 val a2 = mutableListOf(1, 2, 3) // mutable list 생성 a2.add(4) // 가능 println(a2) // [1, 2, 3, 4] val m1 = mapOf(1 to "I", 5 to "V", 10 to "X", Pair(50, "L")) // pair 객체를 통해 map 생성 print..
[Kotlin] 컬렉션 타입 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. 배열 Array C언어의 배열과 비슷한 특성을 갖는다. - 크기가 정해져 있다. - 원소의 삽입, 삭제가 불가능하다. - 원소의 대치는 가능하다. (원소 변경) Java의 기본 자료형이다. - Java와의 호환을 위해 Kotlin의 collection 관련 class를 상속 받지 않는다. iterator()를 제공한다. - for문을 통해 원소를 차례로 방문할 수 있게 한다. fun main() { val arr = arrayOf("Hello", "World", "Kotlin") for (elem in arr) { println(elem) } } Java와의 호환 및 성능을 위해 기본 자료형 별 Array 클래스가 있다. ..
[Kotlin] 봉인된 클래스 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. enum 클래스 enum class Result { SUCCESS, ERROR } fun runComputation(): Result { val a = readLine()?.toIntOrNull() ?: return Result.ERROR val b = readLine()?.toIntOrNull() ?: return Result.ERROR println("Sum: ${a + b}") return Result.SUCCESS } fun main() { println(when (runComputation()) { Result.SUCCESS -> "Completed Successfully" Result.ERROR -> "Error..
[Kotlin] 부호 없는 정수 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. 부호 없는 정수 타입 자바에는 없는 부호 없는 정수 타입이 다시 생겼다. 타입 크기 (Byte) 범위 UByte 1 0 ~ 255 UShort 2 0 ~ 65535 UInt 4 0 ~ 2^32 - 1 ULong 8 0 ~ 2^64 - 1 fun main() { val ubyte: UByte = 1u val ushort: UShort = 1u val uint: UInt = 1u val ulong: ULong = 1u val ulong2 = 1uL // L 접미사로 ULong으로 추론 } 부호 있는 타입과 없는 타입간의 타입 변환 부호 있는 타입과 없는 타입은 서로 연산이 불가하다. fun main() { println(1 +..