익명클래스란?
클래스의 선언과 객체의 생성이 동시에 되는 클래스
1개의 객체만을 생성하고 1번만 사용된다
이름이 없는 클래스, 인스턴스처럼 생성되고 소멸되는 클래스이다
익명클래스 용도
클래스를 새로 하나 구현하는 것이 더 큰 비용이 소모될때 쓴다
하나의 객체에 대해서 1회 사용하려 할때 사용한다
구조가 간단한 클래스에서 쓰일 수 있다
익명클래스 선언방법
클래스이름 인스턴스이름 = new 클래스이름(){
메소드,필드
};
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
32
33
34 |
package Day14;
//무명 클래스(익명 클래스)
//이름이 있는 클래스의 경우
interface Remoteable{
void turnOn();
void turnOff();
}
class Tv implements Remoteable {
@Override
public void turnOn() {
}
@Override
public void turnOff() {
}
}
public class AnonymousClassTest {
public static void main(String[] args) {
Remoteable tvRemo = new Remoteable() {
@Override
public void turnOn() {
System.out.println("Tv 켜기");
// TODO Auto-generated method stub
}
@Override
public void turnOff() {
System.out.println("TV 끄기");
// TODO Auto-generated method stub
}
};
tvRemo.turnOff();
tvRemo.turnOn();
}
} |
cs |
내부 무명 클래스
이름이 없는 내부 클래스 - 이름이 있는데 왜 이름이 없다고 하는 것인가
클래스 안에서 구현 된 클래스이다
대부분 기존 클래스의 오버라이딩이나 추상클래스의 추상메소드 구현
인터페이스의 추상메소드 구현을 목적으로 한다
'Java 강의' 카테고리의 다른 글
객체 직렬화 하고 다시 가져오기 / java Serializable (0) | 2017.10.27 |
---|---|
자바 스레드 레이스 컨디션 예제 / java thread race condition example (0) | 2017.10.25 |
자바 inner 클래스 / 내부 클래스 (0) | 2017.10.17 |
자바 동적 바인딩 / 자바 다형성 (0) | 2017.10.13 |
자바 스레드 / java thread (0) | 2017.10.12 |
댓글