한번쓰고 버려질 클래스가 존재 할때.. 굳이 클래스를 만들어서 사용하지 말고..
익명 클래스로 사용하라..
1. 일반클래스 사용
2. 익명클래스 사용
3. 익명클래스는 멤버필드와 메소드를 익명클래스 밖에서는 사용할수 없다.
4. 익명클래스 매개변수 전달방법
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
|
package anonymousTst;
public class Sports {
void ball() {
System.out.println("볼");
}
//익명클래스 매개변수 tst
public static void ball(Sports s) {
s.ball();
}
}
public class Football extends Sports {
@Override
void ball() {
super.ball();
}
}
public class Basketball {
void ball() {
System.out.println("축구공");
}
}
|
cs |
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
public class Main {
public static void main(String[] args) {
//1. 일반클래스 사용
Football s1 = new Football();
s1.ball();
//2. 익명클래스 사용
Football s2 = new Football() {
@Override
void ball() {
// TODO Auto-generated method stub
System.out.println("익명클래스 볼");
}
};
s2.ball();
//3. 익명클래스는 멤버필드와 메소드를 익명클래스 밖에서는 사용할수 없다.
Football s3 = new Football() {
public String abc = "abc";
@Override
void ball() {
// TODO Auto-generated method stub
System.out.println("익명클래스 볼");
}
void ball2() {
// TODO Auto-generated method stub
System.out.println("익명클래스 볼2");
}
};
//s3.ball2(); //에러
//System.out.println( s3.abc ); //에러
//4. 익명클래스 매개변수 전달
Sports.ball(new Sports() {
@Override
void ball() {
// TODO Auto-generated method stub
System.out.println("매개변수로 넘어온 볼");
}
});
}
}
|
cs |
5. 인터페이스 익명클래스에서 사용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
//인터페이스
public interface Baseball {
public void grobe();
public void cap();
}
public class Baseball2 {
//인터페이스를 선언해서 익명클래스로 사용
Baseball b1 = new Baseball() {
@Override
public void grobe() {
// TODO Auto-generated method stub
System.out.println("야구글로브");
}
@Override
public void cap() {
// TODO Auto-generated method stub
System.out.println("야구모자");
}
};
}
|
cs |
1
2
3
4
5
6
7
8
9
|
public class Main {
public static void main(String[] args) {
//5. 인터페이스 익명클래스에서 사용
Baseball2 s4 = new Baseball2();
s4.b1.cap();
s4.b1.grobe();
}
}
|
cs |
'dev > 자바' 카테고리의 다른 글
[자바] Eclipse 에서 DCEVM 사용하기(서버재구동안하기.) (0) | 2021.02.19 |
---|---|
JRABEL 라이센스발급, 설치 (0) | 2021.01.11 |
xss (cross site scriptiong) 처리 (0) | 2021.01.08 |
JAVA try-with-resources문 (0) | 2020.05.31 |
[JNDI] eclipse에서 jndi 설정테스트 (0) | 2014.11.20 |