일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- @Getter
- @Data
- 프로그래머스
- 알고리즘
- 스프링 스케쥴러
- @Setter
- 모던 자바 인 액션
- kubenetes
- 영속 자료구조
- 쿠버네티스
- 해시
- H-index
- K번째수
- 정렬
- 다리를 지나는 트럭
- 크론 표현식
- 검색 기능 확장
- @EnableScheduling
- 고차원 함수
- 커링
- 기능개발
- @configuration
- 코딩 테스트
- 완주하지 못한 선수
- 롬복 어노테이션
- 전화번호 목록
- Java
- 가장 큰 수
- 루씬 인 액션
- 스택/큐
- Today
- Total
목록Kotlin (16)
Today I Learned

상속 대신 델리게이션을 써야 하는 상황 클래스의 객체가 다른 클래스의 객체가 들어갈 자리에 쓰여야 한다면 상속을 사용해라 클래스의 객체가 단순히 다른 클래스의 객체를 사용만 해야 한다면 델리게이션을 사용해라 델리게이션을 사용한 디자인 디자인적 문제점 interface Worker { fun work() fun takeVacation() } class JavaProgrammer : Worker { override fun work() = println("...write java...") override fun takeVation() = println("...code at the beach...") } class CSharpProgrammer : Worker { override fun work() = prin..

인터페이스와 추상 클래스 생성 인터페이스 만들기 코틀린의 인터페이스는 추상 메소드를 작성하는 명세에 의한 설계를 할 수 있고, default 키워드 없이 인터페이스 안에 메소드를 구현할 수 있다. 또한 인터페이스 안에 컴패니언 객체를 작성하여 static 메소드를 가질 수 있다. interface Remote { fun up() fun down() fun doubleUp() { up() up() } } class TV { var volume = 0 } class TVRemote(val tv: TV): Remote { override fun up() { tv.volume++ } override fun down() { tv.volume-- } } TVRemote가 Remote 인터페이스를 구현한다는 것을 명..

객체와 싱글톤 객체 표현식으로 사용하는 익명 객체 코틀린의 객체 표현식은 Java의 익명 클래스를 생성하는 데 유용하게 쓰이지만, JavaScript의 객체, C#의 익명 타입과 비슷하다. fun drawCircle() { val circle = obejct { // an expression val x = 10 val y = 20 val radius = 30 } println("Circle x: ${circle.x} y: ${circle.y} radius: ${circle.radius}") } drawCircle() 객체 표현식은 지역변수들을 그룹핑 할때 유용하지만, 다음과 같은 한계를 가진다. 익명 객체의 내부 타입은 함수나 메소드의 리턴 타입이 될 수 없다. 익명 객체의 내부 타입은 함수나 메소드의 ..