익명객체 2

자바 기본서를 다시 읽다. 3 - 로컬클래스와 익명객체, 그리고 람다식 (2)

이제 람다식을 정리해보자. 앞서 로컬클래스와 이름 없이 사용하는 로컬클래스인 익명 객체에 대해 알아보았다. 그리고 이 람다식은 런타임시 익명객체를 생성해주는 함수 생성 식이다. 이를 사용하면 자바 코드가 매우 간결해주고 컬렉션의 요소를 필터링하거나 매핑해서 원하는 결과를 쉽게 집계할 수 있다. 람다식은 아래와 같이 인터페이스 변수 = 람다식의 형태로 작성된다. Runnable runnable = () -> {}; 이렇게 보면 자바의 메소드를 선언하는 것 처럼 보이지만, 자바는 메소드만을 단독으로 생성할 수 없고, 항상 클래스의 구성 멤버로 선언하기 때문에 자바는 이 메소드를 가지는 객체를 생성하고 인터페이스 변수에 대입된다. 위 코드는 Runnable 변수에 대입되므로 람다식은 Runnable 익명 구현..

Study/Java 2022.03.15

자바 기본서를 다시 읽다. 3 - 로컬클래스와 익명객체, 그리고 람다식 (1)

람다식을 공부하다보니, 로컬클래스와 익명개체 그리고 람다식의 관계가 보였다. 람다식을 더 정확하게 사용하기 위해 로컬클래스와 익명개체부터 정리해보려고 한다. I. 로컬클래스 첫번째로, 로컬클래스는 중첩 클래스 중 하나로 하나의 클래스, especially 메소드 내부에서 선언되어 메소드가 실행 될 때에만 사용되는 클래스이다. 로컬클래스와 반대로 멤버클래스는 하나의 클래스 안에서 멤버변수로 선언되어 객체가 사용중에 언제든 재사용이 가능한 객체이다. 로컬클래스는 메소드 내부에서만 사용되므로 접근을 제한할 필요가 없어 public, private 등의 접근 제한자가 사용이 불가능하다. 또한 static 필드와 메소드도 선언할 수 없다. 로컬클래스의 가장 중요한 특징은 다음과 같다. 로컬 클래스 내부에서 바깥 ..

Study/Java 2022.03.15