익명클래스(2)
-
[Item 42] 익명 클래스보다는 람다를 사용하라
자바 8 이전, 익명 클래스 자바 8 이전에는 함수 객체를 만드는 주요 수단은 익명 클래스다. 하지만 익명 클래스 방식은 코드가 너무 길기 때문에 자바는 함수형 프로그래밍에 적합하지 않다. 아래의 코드는 문자열을 길이 순으로 정렬하는데, 정렬을 위한 비교 함수로 익명 클래스를 사용하고 있다. import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Main { public static void main(String[] args) { List words = Arrays.asList("banana", "cat", "orange", "apple"); Co..
2022.07.03 -
[Item 24] 멤버 클래스는 되도록 static으로 만들어라
중첩 클래스(nested class) 중첩 클래스(nested class)란 다른 클래스 안에 정의된 클래스라고 말한다. 중첩 클래스는 자신을 감싼 바깥 클래스에서만 쓰여야 하며, 그 외의 쓰임새가 있다면 톱레벨 클래스로 만들어야 한다. 중첩 클래스의 종류 정적 멤버 클래스 (비정적) 멤버 클래스 익명 클래스 지역 클래스 첫 번째를 제외한 나머지는 내부 클래스(inner class)에 해당한다. 정적 멤버 클래스 정적 멤버 클래스는 다른 클래스 안에 선언되고, 바깥 클래스의 private 멤버에도 접근할 수 있다는 점만 제외하고는 일반 클래스와 똑같다. 정적 멤버 클래스는 다른 정적 멤버와 똑같은 접근 규칙을 적용받는다. 예를 들면, private로 선언되었다면 바깥 클래스에서만 접근이 가능하다. 정적 ..
2022.06.05