세상을 더 편리하게
[Kotlin] 데이터 클래스
Programming/Kotlin 2020. 3. 15. 07:46

데이터 클래스는 데이터 전달을 위한 객체 DTO(Data Transfer Object)라고 불립니다. 데이터 클래스는 로직을 가질 수 없습니다. (데이터 표현 데이터 비교 메소드는 제외) 코틀린 데이터 클래스에서 내부적으로 자동 생성되는 메소드는 다음과 같습니다. 프로퍼티를 위한 게터/세터 비교를 위한 equals()와 키 사용을 위한 hashCode() 프로퍼티를 문자열로 변환해 순서대로 보여주는 toString() 객체 복사를 위한 copy() 프로퍼티에 상응하는 component1() ...2 등 [ 코틀린 프로퍼티 = 필드(변수) + 게터/세터 ] data class Customer(var name: String, var email: String) { var job: String = "Unknow..

[Kotlin] 인터페이스
Programming/Kotlin 2020. 3. 14. 13:57

인터페이스 코틀린의 인터페이스는 다음과 같은 특징을 갖고 있다. 다른 객체 지향 언어와는 다르게 메서드에 구현 내용이 포함 될 수 있다. 프로퍼티를 선언 할 수 있지만 정의할 수 없다. 추상 메소드와 일반 메소드 두 종류 구현이 가능하다. interface Pet { var category: String fun feeding() // 추상 메소드 fun patting() { //일반 메소드 println("Keep patting") } } class Cat(override var category: String) : Pet { override fun feeding() { println("Feed the cat a tuna can!") } } fun main() { val obj = Cat("small") ..

[Kotlin] 추상 클래스
Programming/Kotlin 2020. 3. 14. 12:55

추상 클래스 코틀린에서의 추상클래스는 자바와 같이 독립적인 객체 생성이 불가능하다. abstract class Vehicle(val name: String, val color: String, val weight: Double) { abstract var maxSpeed: Double var year = 2020 abstract fun start() abstract fun stop() fun displaySpecs() { println("Name $name ,Color $color, Weight : $weight, Year, $year, Max Speed : $maxSpeed") } } 위의 코드블럭에서 보면 abstract 로 나와있는 매소드나 프로퍼티는 반드시 하위클래스(자식)에서 override를 이..

[Kotlin] Object 선언(싱글톤)과 Object 표현식
Programming/Kotlin 2020. 3. 14. 02:06

Object 선언 [ 싱글톤 ] object OCustomer { var name = "Kildong" fun greeting() = println("Hello World") val HOBBY = Hobby("BasketBall") init { println("Init Object") } } class CCustomer{ companion object{ const val HELLO = "Hello" var name = "Joosol" val HOBBY = Hobby("FootBall") fun gretting() = println("I'm Kotlin") } } class Hobby(val name:String) fun main() { OCustomer.greeting() OCustomer.name = ..