๐ ์๋ฐ์ ์ ์์ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.
๋ด๋ถํด๋์ค์ ์ข ๋ฅ
๋ด๋ถ ํด๋์ค๋ ๋จ์ํ ํด๋์ค ๋ด์ ์ ์ธ๋ ํด๋์ค๋ค.
- ๋ด๋ถ ํด๋์ค์ ์ฅ์ 
 1.๋ด๋ถ ํด๋์ค์์ ์ธ๋ธ ํด๋์ค ๋ฉค๋ฒ์ ์ฝ๊ฒ ์ ๊ทผ ๊ฐ๋ฅ
 2.์ฝ๋ ๋ณต์ก์ฑ์ ์ค์ธ๋ค(์บก์ํ)

์ ๋ค์ด์ด๊ทธ๋จ์์ ๋ณด๋ค์ํผ ๋ด๋ถ ํด๋์ค๋ ํด๋์ค์ ๋ฉค๋ฒ์ฒ๋ผ ๋ค๋ฃฌ๋ค. ๋ค๋ฅธ ์ ์ ์ต๋ช
 ํด๋์คAnonymous class๊ฐ ์๋ค.
๋ด๋ถํด๋์ค์ ์ ์ด์, ์ ๊ทผ์ฑ
์๋ฐ์ ์ ์ ์์ ์ ๊ฐ๋จํ ์ฃผ์์ ๋ฌ์์ต๋๋ค.
class Outer {
    class InstanceInner {
        int iv = 100;
    }
    static class StaticInner {
        int iv = 200;
        static int cv = 300;
    }
    void myMethod() {
        class LocalInner {
            int iv = 400;
        }
    }
}
public class InnerEx4 {
    public static void main(String[] args) {
        /*
        * ์ธ์คํด์ค๋ด๋ถํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ค๋ฉด
        * ์ธ๋ถํด๋์ค์ ์ธ์คํด์ค๊ฐ ๋จผ์  ํ์ํ๋ค.
        * */
        Outer outer = new Outer();
        Outer.InstanceInner instanceInner = outer.new InstanceInner();
        System.out.println("instanceInner.iv : " + instanceInner.iv);
        System.out.println("Outer.StaticInner.cv : " + Outer.StaticInner.cv);
        /*static ๋ด๋ถ ํด๋์ค์ ์ธ์คํด์ค๋ ์ธ๋ถ ํด๋์ค๋ฅผ ๋จผ์  ์์ฑํ์ง ์์๋ ๋๋ค.*/
        Outer.StaticInner staticInner = new Outer.StaticInner();
        System.out.println("staticInner.iv : " + staticInner.iv);
        System.out.println("staticInner.iv : " + staticInner);
    }
}์ต๋ช ํด๋์คanonymous class
์ต๋ช ํด๋์ค๋ ์ด๋ฆ ์๋ ๋ด๋ถ ํด๋์ค๋ค. ์ด๋ฆ์ด ์์ผ๋ฏ๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๊ณ , ์ฌ์ฌ์ฉํ ์๋ ์๋ค.
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Anonymous {
    public static void main(String[] args) {
        Button button = new Button("Start");
    }
}
class EventHandler implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("ActionEvent Occured!");
    }
}์ด๋ฐ ์ฝ๋๋ฅผ
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Anonymous {
    public static void main(String[] args) {
        Button button = new Button("Start");
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("ActionEvent occurred!!!");
            }
        });
    }
}์ต๋ช ํด๋์ค๋ฅผ ์ด์ฉํด์ ์ด๋ ๊ฒ ๋ณ๊ฒฝํ ์ ์๋ค.
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Stack & Queue (0) | 2020.09.09 | 
|---|---|
| Collections Framework - ํต์ฌ ์ธํฐํ์ด์ค (0) | 2020.09.09 | 
| ์ถ์ํด๋์ค & ์ธํฐํ์ด์ค (0) | 2020.09.09 | 
| ๋คํ์ฑPolymorphism (0) | 2020.09.06 | 
| ์์Inheritance (0) | 2020.09.06 |