ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 왕초보 Kotlin 기초 공부 #4
    Application 2020. 3. 12. 22:39
    728x90
    반응형

    생서자 없이 객체를 직접 만들어내는 object.

     

    기존의 Class 는 단지 인스턴스 객체를 만들기 위한 틀이기 때문에

    내부에 있는 속성이나 함수를 사용하려면 생성자를 통해 실체가 되는 인스턴스 객체를 만들어야 했습니다.

     

    하지만 여러개의 인스턴스 객체가 필요없고 단 하나의 객체만으로 공통적인 속성과 함수를 사용해야 하는 코드에서는 굳이 class  사용하지 않고 object 사용.

     

     

    object 로 선언된 객체는 최초사용시 자동으로 생성되며 이후에는 코드 전체에서 공용으로 사용 될 수 있으므로 프로그램이 종로될때까지 공통으로사용할 내용을 묶어사용하는 것이 좋다.

     

    기존의 클래스 안에도 오브젝트를 만들 수 있다.

     

    서로 다른 인스턴스 임에도 companion object인 total을 공유 하므로 모든 인스턴스에서 투표수를 누적 할 수 있다.

     

    이벤트가 일어나는 것을 감시하는 감시자의 역할을 옵저버라고 부른다.

    안드로이드의 경우 키의 입력,터치의 발생,데이터의 수신등

    함수로 직접 요청하진 않았지만 시스템 또는 루틴에 의하여 발생하는 것을 이벤트라하며

    이 이벤트가 발생할때마다 즉각적으로 처리할 수 있도록 하는것을 옵저버 패턴이라 부른다.

     

    이벤트를 수신하는 클래스(class A) 이벤트의 발생 및 전달 클래스(class B) 가 필요

     

    class A는 class B를 참조 할 수 있지만 B는 A를 참조 하지 못한다 그래서

    둘 사이에 인터페이스를 만들어 넣는다.

    이 인터페이스를 옵저버, 리스너 라고 부른다.

    이벤트를 넘겨주는 행위를  callback 이라고 한다.

     

     

     

     

    다형성 음료와 콜라와의 관계

    음료라는 클래스 와 이를 상속받은 콜라 클라스가 있을때

    콜라의 인스턴스를 만들때는 상속관계에 있는 수퍼 인스턴스 공간에

    음료의 객체 공간과 콜라의 추가 공간이 생성된다.

    음료의 변수에 지정하면 콜라에선 사용 불가.

    콜라 변수에 담으면 콜라 및 음료에서 사용가능

    이를 up-casting 그 반대를  down-casting  이라고 부른다.

    down-casting  시에는 as 나 is 같은 연산자가 추가로 필요하다.

     

     

     

    클래스나 함수에서 사용하는 자료형을 외부에서 지정하기 위해서는 generic 사용

    fun <Int> genericFunc(param:Int){}

    genericFunc(1)

    Int로 자동 추론됨

     

    class GenericClass<Int>(var pref:Int)

    GenericClass(1)

     

     

     

    캐스팅 없이 사용하므로 성능을 높일 수 있다.

     

    갈수록 이해가 어렵다...

    시간을가지고 계속 리뷰 하는 시간이 필요할 것 같습니다.

    728x90
    반응형

    'Application' 카테고리의 다른 글

    왕초보 Kotlin 기초 공부 #3  (0) 2020.03.08
    왕초보 Kotlin 기초 공부 #2  (0) 2020.03.07
    왕초보 Kotlin 기초 공부 #1  (0) 2020.03.07
Designed by Tistory.