Kotlin 클래스 비교하기 compareTo 포스팅 썸네일 이미지

Kotlin/Syntax

Kotlin 클래스 비교하기 compareTo

1. 클래스 특정 프로퍼티에 따라 비교 - compareTo 예를들어 Book 이라는 클래스가 존재한다. 이는 name이라는 String 타입 프로퍼티와 price라는 Int 타입의 프로퍼티를 갖는다. 이럴 경우 price 값에 따라 인스턴스를 비교하고 싶다고하면 이럴 때 compareTo를 사용할 수 있다. (직접 수정해보며 실행해볼 수 있다. 로드가 안된다면 새로고침 or play.kotlinlang.org/) operator fun compareTo로 비교 연산자를 사용할 때 price를 기준으로 비교하도록 하였다. 비교 대상과 같다면 0 비교 대상보다 큰값을 같고 있다면 양수(1) 비교 대상보다 작은값을 같고 있다면 음수(-1) 반환해주며 이에따라 따라 결과를 얻을 수 있다. 이 compareTo..

2020.10.07 게시됨

Kotlin 중첩, 내부, 데이터 클래스 포스팅 썸네일 이미지

Kotlin/Syntax

Kotlin 중첩, 내부, 데이터 클래스

1. 중첩 클래스(Nested class) 중첩 클래스(Nested class)는 클래스 안에서 클래스를 선언하는 것이다. 클래스 안에서 선언을하므로 생성하기 위해서는 "바깥 클래스.중첩 클래스" 식으로 생성자를 호출하여야 한다. class One { var one: String = "one" fun print() { println("One") //println("$two") error } class Two { var two: String = "two" fun print() { println("Two") //println("$one") error } } } fun main() { var one = One() one.print() var two = One.Two() two.print() } 여기서 중요한점..

2020.10.06 게시됨

Kotlin 추상 클래스(Abstract class), 인터페이스(Interface) 포스팅 썸네일 이미지

Kotlin/Syntax

Kotlin 추상 클래스(Abstract class), 인터페이스(Interface)

1. 추상 클래스(Abstract class) 추상 클래스는 동일하게 사용되는 프로퍼티나, 멤버함수는 사용할 수 있으며 동일한 기능의 다른 동작을하는 프로퍼티나 멤버함수는 오버라이딩하여 클래스의 따라 맞게 사용할 수 있다. 단, 추상 프로퍼티, 추상 멤버함수들을 모두 반드시 오버라이딩 해야만 한다. abstract class Animal { abstract var name: String var sex: String = "male" abstract fun howling(): String } class Dog : Animal() { override var name: String = "gogy" override fun howling() = "war" } class Cat : Animal() { override..

2020.10.04 게시됨

Kotlin static 이용 Companion Object 포스팅 썸네일 이미지

Kotlin/Syntax

Kotlin static 이용 Companion Object

1. static 역할 - Companion Object 기존 Java에서 사용하였던 static은 Kotlin에서는 존재하지 않는다. 하지만 Companion Object를 사용한다면 static 역할을 해낼 수 있다. 여기서 중요한 점은 static의 역할을 할 수 있다는 것이지 static인것은 아니다. class Book private constructor(var name: String) { companion object { var count: Int = 0 private set fun create(name:String) : Book { count++ return Book(name) } fun print() = println("$count") } } fun main() { Book.print() ..

2020.10.03 게시됨

Kotlin  Singleton pattern - object 포스팅 썸네일 이미지

Kotlin/Syntax

Kotlin Singleton pattern - object

1. 싱글톤 패턴(Singleton Pattern) 싱글톤 패턴(Singleton Pattern)이란 프로그램에서 어느 객체를 단 한개의 인스턴스만 만들수 있도록 보장 하는 인스턴스를 말한다. 하나의 인스턴스만을 갖어야함으로 기존 Java에서는 private을 사용하여 외부에서 접근하지 못하도록 제한하고, static을 사용하여 클래스 내부에서 생성된 동일한 인스턴스를 갖고오도록 하였다. 하지만 Kotlin에서는 object 키워드를 이용하여 객체를 만들 수 있는 수단이 존재하여 아주 간단하게 싱글톤 패턴을 구현할 수 있다. 2. Object Declarations object Book { lateinit var name:String var price: Int = 0 fun print() = printl..

2020.10.02 게시됨

Kotlin 접근 지정자(= 가시성 지정자, Visibility Modifiers) 포스팅 썸네일 이미지

Kotlin/Syntax

Kotlin 접근 지정자(= 가시성 지정자, Visibility Modifiers)

1. 가시성 지정자(Visibility Modifiers) 지정자 범위 private 해당 클래스 내부에서만 접근할 수 있다. protected private + 서브 클래스에서 접근할 수 있다. internal 같은 모듈 내에서 접근할 수 있다. public 어디서든 접근할 수 있다. Kotlin에서 기본 지정자는 public으로 생략 시 public이 된다. ※ internal 에서 모듈이란 함께 컴파일 된 kotlin 파일 집합을 의미한다. 이는 IntelliJ IDEA 모듈; Maven 프로젝트; Gradle 소스 세트 들이 될 수 있다. 2. 가시성 지정자 오버라이딩 open class Test { private val a = 1 protected open val b = 2 internal va..

2020.10.01 게시됨

Kotlin null, nullable 타입 포스팅 썸네일 이미지

Kotlin/Syntax

Kotlin null, nullable 타입

1. nullable 타입 ? Java에서는 참조 타입의 null을 넣을 수 있었다. 하지만 코틀린은 Int, Double, String 처럼 기본 타입도 참조 타입이지만, 모두 기본적으로 non-nullable 타입으로서 null을 가리킬 수 없다. null을 사용할 수 있게하기 위해서는 nullable 타입으로 정의해야하며 타입 뒤에 '?'를 붙인다. //var a:Int = null var a:Int? = null println(a) 2. 안전한 호출 연산자(Safe call operator) ?. 만약 변수를 nullable하도록 만드면 변수는 null을 갖을 수 있게 된다. 그렇다면 의도치 않게 클래스 참조 변수가 null을 갖고 있는 상태에서 프로퍼티나 멤버 함수의 접근하고자 시도할 수도 있다..

2020.09.23 게시됨

Kotlin 예외(Exception) 처리 포스팅 썸네일 이미지

Kotlin/Syntax

Kotlin 예외(Exception) 처리

1. 예외(Exception) 예외(Exception)란 프로그램 실행 중 예기치 못한 에러가 발생하는 경우이다. 이러한 예외가 발생하면 보통은 에러 메시지를 보여주며 프로그램이 중단되거나 강제 종료된다. 따라서 예외 처리를 통하여 사용자 입장에서 어떠한 이유 때문에 어떠한 에러가 발생하였는지 안내하거나 프로그램이 강제 종료되는 것을 방지할 수 있다. 2. 예외(Exception) 처리 예외 처리는 try ~ catch ~ finally 로 처리할 수 있다. try { var s = "ab" //var s = "75" println(s.toInt()) } catch(e: NumberFormatException) { println("error 발생 $e") } catch(e: Exception) { pri..

2020.09.21 게시됨