kotlin-이론
[kotlin]Object Expression
sang_hoony
2018. 6. 18. 17:28
Object Expression and Declarations
Object의 용도
- 어떤 클래스에서 조금 변형된 객체를 생성할 때
- 새로운 subclass의 명시적인 선언 없이 객체생성
Object Expression
-Java의 익명객체와 같은 역활을 한다. object:Runnable을 쓰는 순간 바로 객체가 생성되는 것이고 변수에도 집어 넣을 수 있다.
object Expression이 없을 때는 클래스를 만들어서 사용했지만
하지만 object Expression을 사용하면 클래스의 생성없이 아래와 같이 사용할 수 있다.
그리고 여기서 람다식을 사용해주면 훨씬 간단하게 사용할 수 있다.
그리고 꼭 상속을 받을 필요는 없다. 객체명.a 객체명.b와 같이 접근할 수 있다.
Object Expression 제약 조건
익명객체가 public function이나 public property에서 호출될때 super타입으로 동작되서 익명객체에 추가된
멤버에 접근 불가능하다.
Object Expression 특징
1. 익명클래스 밖에있는 변수에 접근할 수 있다. 자바에서는 변수가 final이여야 했지만 코틀린에서는 상관없다.