본문 바로가기

Study/Kotlin Study

(33)
[Kotlin] 객체 (Object) + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. 객체 (object) - 오직 하나의 인스턴스만 존재하는 클래스는 object라는 키워드로 정의하며 객체라 부른다. - 객체는 선언과 동시에 인스턴스가 생성된다. (객체 이름 = 타입 이름 = 인스턴스 이름) object Application { // 타입 이름이자 객체 이름 val name = "My Application" override fun toString() = name // 객체의 이름 반환 // toString 은 이미 상위 클래스에서 사용되고 있으므로 override 사용 (모든 객체는 toString 함수를 갖고 있다.) fun exit() {} // 빈 함수 } fun main() { println(App..
[Kotlin] 단순한 변수 이상인 프로퍼티 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. 최상위 프로퍼티 - 클래스에 소속되지 않은 프로퍼티는 전역 변수/상수의 역할을 한다. - public/internal/private 등의 가시성 지정이 가능하다. private val prefix = "Hello, " // 전역 변수 // private 선언이기 때문에 다른 파일에서는 호출이 불가능하다. fun main() { val name = readLine()?: return // null이면 return println("$prefix $name") } 늦은 초기화 (lateinit) - 생성자에서 초기화되지는 않지만, 프로그램 흐름 상 실사용 시 초기화되는 것이 명백한 변수에는 lateinit이라는 예약어로 표기하여..
[Kotlin] 널 가능성 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. 널 (NULL) null은 아무 것도 참조하지 않는 참조 값의 특별한 상태이다. null에 대해서 멤버 접근을 시도하면 NullPointerException이 발생한다. (컴파일 시간에 파악이 되지 않아 최악의 에러 중 하나로 간주) Kotlin에서 일반 참조형에는 null을 담을 수 없다. (에러 발생 => NullPointer Exception 예방) // 문자로 이루어진 문자열인지 확인하는 함수 fun isLetterString(s:String): Boolean { if (s.isEmpty()) return false // 빈 문자열이라면 false for (ch in s) { // 문자가 아니라면 if (!ch.is..
[Kotlin] 함수 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. Kotlin 함수의 예 import kotlin.math.PI // kotlin 패키지에서 PI 상수를 가져옴 fun circleArea(radius: Double): Double { // 함수의 정의 return PI * radius * radius } fun main() { print("Enter radius: ") val radius = readLine()!!.toDouble() println("Circle area: ${circleArea(radius)}") } Kotlin 함수의 특징 (1) - 파라미터의 타입은 항상 지정해야 한다. fun circleArea(radius: Double): Double // O f..
[Kotlin] 클래스 정의하기 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. 클래스 - 프로퍼티 (변수)와 메소드 (함수/연산)를 가지는 타입을 정의하는 단위 class Person { // 프로퍼티 var firstName: String = "" // 이름 var familyName: String = "" // 성 var age: Int = 0 // 나이 // 메소드 fun fullName() = "$firstName $familyName" // 이름 + 성 fun showMe() { println("${fullName()}: $age") } } 객체 (클래스의 인스턴스)의 생성 - Person 클래스 타입을 가지는 변수는 객체를 가리키는 참조자를 가진다. // 인스턴스(객체)의 생성 fun ma..
[Kotlin] 예외 처리 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. 예외 던지기 - 함수의 비정상적인 상황 발생 시 throw 문을 통하여 예외를 던질 수 있다. (예외를 받지 않으면 비정상 종료) fun main() { val str = "10110110" println(parseIntNumberInBinary(str)) // 182 } // 2진수 문자열을 입력 받아 10진수로 변환 후 반환하는 함수 fun parseIntNumberInBinary(s: String): Int { var num = 0 if (s.length !in 1 .. 31) throw NumberFormatException("Not a Number: $s") // String s의 길이가 1 ~ 31 범위가 아니라..