SKILL/JAVA

자바 메서드 내의 클래스 : LocalClass 기본 예제

Jedy_Kim 2017. 12. 14. 21:18
728x90
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
49
50
51
52
53
54
55
56
57
58
59
interface Readable {
    public void read();
}
 
class OuterClass {
    private String name;
    OuterClass(String name) {
        this.name = name;
    }
    public String getString(){
        String str = "";
        return str;
    }
    public double test() {
        int i = 10;
        return i;
    }
    //반환형식 : Readable
    public Readable createLocalClassInst() {
        //메서드 내에 존재하는 LocalClass
        class LocalClass implements Readable {
            public void read() {
                System.out.println("name : " + name);
            }
        }
        return new LocalClass();
    }
    //익명의 로컬 클래스
    public Readable createLocalClassInst2(final int val){
        return new Readable() {
            public void read() {
                System.out.println("name : " + name);
                System.out.println("Local val : " + val);
            }
        };
    }
}
 
public class LocalMain {
    public static void main(String[] args) {
        OuterClass oc = new OuterClass("첫 번째");
        //인터페이스의 참조변수 사용
        Readable r = oc.createLocalClassInst();
        r.read();
        
        OuterClass oc2 = new OuterClass("두 번째");
        //인터페이스의 참조변수 사용
        Readable r2 = oc2.createLocalClassInst();
        r2.read();
        
        OuterClass oc3 = new OuterClass("세 번째");
        Readable r3 = oc3.createLocalClassInst2(123);
        r3.read();
        
        OuterClass oc4 = new OuterClass("네 번째");
        Readable r4 = oc4.createLocalClassInst2(456);
        r4.read();        
    }
}
cs


반응형

'SKILL > JAVA' 카테고리의 다른 글

자바 Final 키워드 핵심 예제  (0) 2017.12.14
자바 static 예제  (0) 2017.12.14
자바 내부 클래스 기본예제  (0) 2017.12.14
자바 인터페이스 개념 예제  (0) 2017.12.14
자바 싱글톤 패턴 기본 개념 예제  (0) 2017.12.14