Interface
1
2
3
4
5
6
7
8
9
|
interface Test {
default 타입 메소드명(매개변수) { 실행문 ... }
static 타입 메소드명(매개변수) { 실행문 ... }
}
|
cs |
1) 디폴트 메소드 (default method)
구현 객체에서만 사용이 가능하며, 구현 클래스에서 오버라이딩을 하여 수정이 가능
2) 정적 메소드 (static method)
객체 생성 없이 인터페이스만으로도 호출이 가능하다.
java.time 패키지
JAVA 7 이전까지는 Date와 Calendar 클래스를 이용해서 날짜와 시간 정보를 얻을 수 있었지만 JAVA 8 부터 날짜와 시간을 나타내는 여러 가지 API가 추가되었다.
클래스명 | 설명 |
LocalDate | 로컬 날짜 클래스 |
LocalTime | 로컬 시간 클래스 |
LocalDateTime | 로컬 날짜 및 시간 클래스 (LocalDate + LocalTime) |
ZonedDateTime | ISO-8601 달력 시스템에서 정의하고 있는 타임존의 날짜와 시간을 저장하는 클래스 |
Instant | 특정 시점의 타임스탬프 클래스 |
람다
JAVA 8 부터 람다식을 지원하며 람다식은 객체지향 언어보다는 함수지향 언어에 가깝다.
기본형식
(타입 매개변수) -> {실행문 ...}
함수적 인터페이스 (@FunctionalInterface)
하나의 추상 메소드가 선언된 인터페이스만이 람다식의 다켓 타입이 될 수 있다. 이러한 인터페이스를 함수적 인터페이스라고 한다. (@FunctionalInterface 애노테이션 선언은 선택사항)
1
2
3
4
5
|
@FunctionalInterface
public interface TestInterface {
public void test();
public void test2(); // 컴파일 오류
}
|
cs |
익명 구현 객체
1
2
3
4
5
6
7
|
TestInterface ti = new TestInterface() {
public void test() {
System.out.println("test");
}
};
ti.test();
|
cs |
람다를 이용한 익명 구현 객체
1
2
|
TestInterface ti = () -> { System.out.println("test"); };
ti.test();
|
cs |
'기타' 카테고리의 다른 글
스터디 객체지향 이론 (0) | 2020.08.03 |
---|---|
스터디 DDD (0) | 2020.08.03 |
스터디 spring 과 Spring Boot 차이 (0) | 2020.08.03 |
스터디 MSA (0) | 2020.08.02 |
스터디 애자일 (0) | 2020.08.02 |
Comment