Vintage appMaker의 Tech Blog

[kotlin 배우기 github] 17.Object Keyword 본문

강좌, 연재/앱으로 배우는 kotlin

[kotlin 배우기 github] 17.Object Keyword

VintageappMaker 2020. 11. 19. 07:56
  1. class명 앞에 사용해서 static class로 선언
  2. class 내부의 특정멤버들만 static (companion object)
  3. 이름없는 객체(클래스에서 상속)를 처리할 때
object 싱글톤 {
    var 메시지출력 = { msg : String -> println(msg) }
}

class 일반클래스{
    var msg: String = "일반객체로 생성하면 이 변수를 액세스 가능함"
    // companion object Factory {} 안에서 구현해야 static 가능
    companion object {
        var 스태틱변수 = "스태틱변수";
        fun 이거스태틱임()= println("이거스태틱 함수임");
    }
}

abstract class fake클릭핸들러{
    var msg : String = "abstract 클래스입니다"
    abstract fun onClick()
}

// object 사용예
fun main(args: Array<String>) {

    // 1. 클래스 전체를 싱글톤으로 사용할 때, 마치 java의 static class
    //var 싱글톤변수 = 싱글톤()
    싱글톤.메시지출력("싱글톤입니다.!")

    val 객체 = 일반클래스()
    println(객체.msg)
    // 아래는 객체이므로 접근하지 못하는 에러코드임
    // 객체.스태틱변수

    // 2. 자바의 static method를 사용하듯...
    println( 일반클래스.스태틱변수 )
    일반클래스.이거스태틱임()

    // 3.이름없는 클래스 객체를 만들고 사용할 때...
    // 주로 상속받고 필요한 함수만 오버라이드
    var 객체2 = object : fake클릭핸들러(){
        fun 그냥만든함수() = "눌렀다"
        override fun onClick() {
            println(그냥만든함수())
        }
    }

    객체2.onClick()
}

 

 

 

 

Kotlin Playground: Edit, Run, Share Kotlin Code Online

 

play.kotlinlang.org

 

 

kotlin 배우기 - github 예제 - Google Play 앱

안드로이드 개발 공식언어로 kotlin이 추가되었습니다. 안드로이드 개발자 입장에서는 배워야 하지만, 그것도 시간과 노력이 필요해서 쉽지가 않습니다. 그런 개발자들을 위해 kotlin의 필수사항

play.google.com

 

Comments