목록생성자 (2)
초보개발자 긍.응.성
4장 클래스, 객체, 인터페이스 💡 다루는 내용 클래스와 인터페이스 뻔하지 않은 생성자와 프로퍼티 데이터 클래스 클래스 위임 object 키워드 사용 4.1 클래스 계층 정의 코틀린 인터페이스 interface Clickable { fun click() // 일반 추상 메서드 fun showOff() = println("I'm clickable!") // 디폴트 메서드 } interface Focusable { fun setFocus(b: Boolean) = println("I ${if (b) "got" else "lost"} focus.") fun showOff() = println("I'm focusable!") } class Button: Clickable, Focusable { override f..
똑같은 기능의 객체를 매번 생성하기보다는 객체 하나를 재사용하는 편이 나을 때가 많다. 재사용은 빠르고 세련되다. 특히 불변 객체는 언제든 재사용 가능하다. 아래는 불필요한 객체 생성의 극단 적인 예시이다. String s = new String("I'm Son"); // 절대 사용하지 말 것! 위 문장은 실행될 때 마다 새로운 String 인스턴스를 새로 생성한다. 인자로 넣어주는 I'm Son과 정확히 같은 문자열을 쓸데없이 만들어 낸다. String s = "I'm Son"; 이 코드는 실행될때 하나의 String 인스턴스를 사용한다. 또한 이 방식을 사용한다면 같은 JVM안에서 이와 똑같은 문자열 리터럴을 사용하는 모든 코드가 같은 객체를 재사용한다. 생성자 대신 정적 팩토리 메서드로! 생성자 대..