일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- R
- heroku
- 자바입력
- 자바 thread 실행 순서 제어
- hash table
- 사칙연산
- 카데인 알고리즘
- array
- scanner
- Easy
- 자바 스레드 실행 순서 제어
- SpringBoot 2
- Kadane's Algorithm
- 수학
- JAVA11
- input
Archives
- Today
- Total
DeFacto-Standard IT
익명 클래스 / 익명 객체 본문
익명 클래스는 클래스의 이름이 없는 것을 말한다. 이는 추상메서드를 포함하는 추상클래스나, 인터페이스를 구현할 때 쓰인다.
일반적으로 추상클래스와 인터페이스는 Instantiation할 수 없다.
예를 들어, 추상메서드를 포함하는 Person이라는 추상클래스가 있다면
Person person = new Person();은 불가능하고, 인터페이스 역시 불가능하다.
하지만 이를 바로 구현할 수 있는 방법은 Bracket을 주고 바로 메서드를 오버라이드하여 구현하는 것이다.
Person person = new Person(){
@Override
public void personMethod(){
...
};
};
보통 추상클래스나 인터페이스는, 이를 상속 또는 구현하는 특정 클래스가 있다.
그리고 이를 구현하는 클래스는 당연히 클래스명이 존재할 것이다.
하지만, 위의 경우는 클래스명이 존재하지 않으므로 '익명 클래스(Anonymous Class)'라고 표현한다.
그리고 이렇게 구현된 객체 person을 '익명 객체(Anonymous Object)'라고 표현한다.
주로 일회성으로 쓰고 더 이상 필요가 없을 때 구현한다. 일일이 클래스로 구현하면 몇 번 쓰지 않는데도 파일로서 존재하므로 괜히 프로젝트만 복잡해보일 수 있다.
'Java > References' 카테고리의 다른 글
쓰레드 start()와 run()의 차이 (0) | 2017.11.15 |
---|---|
String / StringBuffer / StringBuilder (0) | 2017.11.15 |
Interface를 사용하는 이유와 장점 (0) | 2017.11.11 |
상속(Inheritance) / 구현(Implementation) 차이점과 특징 및 장단점 (0) | 2017.11.11 |
Overriding / Overloading (0) | 2017.11.11 |
Comments