무명 클래스
클래스 몸체는 정의되지만 이름이 없는 클래스입니다.
무명 클래스는 클래스를 정의하면서 동시에 객체를 생성하게 됩니다.
이름이 없어 한번만 사용이 가능하고 코드의 양을 단축이 가능하지만 표기법이 난해해집니다.
내부 클래스와 동일하게 외부 클래스에서 정의된 필드, 다른 메서드들을 사용 가능합니다.
단 지역 변수 중 final 선언된 변수만 가능합니다.
람다식
나중에 실행될 목적으로 다른 곳에 전달될 수 있는 함수입니다.
이름이 없는 메서드(무명 메서드)라고 할 수 있습니다.
장점으로 메서드가 일회성인 경우 메서드의 길이가 짧은 경우에 유용합니다.
특징
1. 람다식은 0개 이상의 매개 변수를 가질 수 있습니다.
2. 매개 변수는 괄호로 묶이고 쉼표로 구분됩니다.
3. 빈 괄호는 매개 변수가 없음을 나타냅니다.
4. 단일 매개 변수이고 타입은 유추가 가능한 경우 괄호가 불필요합니다.
장점
1. 효율적인 람다 함수의 사용을 통해 불필요한 루프문의가 삭제 가능하고 동일 함수의 재활용의 여지가 존재 합니다.
2. 메모리상의 효율성 및 불필요한 연산의 배제가 가능
단점
1. 어떤 방법으로 작성해도 모든 원소를 전부 순환하는 경우 느림
2. 디버깅 하는경우 콜스택 추적이 극도로 어렵다
3. 남용하는 경우 코드가 난해해 유지보수 어려움
함수 인터페이스
하나의 추상 메서드만 선언된 인터페이스 입니다.
대표적으로 java.lang.Runnable가 있습니다.
패키지
관련 있는 클래스, 인터페이스를 하나로 묶는 것 입니다.
패키지는 주로 클래스의 이름 공간을 분리하여 사용 됩니다.
패키지가 다른 경우 클래스명이 동일하게 가능 합니다.
사용 이유
1. 패키지를 이용하면 관련된 클래스들을 하나의 단위로 모음이 가능 합니다.
2. 더욱 세밀하게 접근 제어를 구현 가능 합니다.
3. 패키지가 다른 경우 개발자들이 동일한 클래스명을 사용 가능합니다.
패키지 사용
1. 경로까지 포함된 완전한 이름을 참조 합니다.
2. 원하는 패키지 멤버만을 import를 합니다.
3. 패키지 전체를 import 합니다.