๐ ์๋ฐ์ ์ ์์ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.
๋ด๋ถํด๋์ค์ ์ข ๋ฅ
๋ด๋ถ ํด๋์ค๋ ๋จ์ํ ํด๋์ค ๋ด์ ์ ์ธ๋ ํด๋์ค๋ค.
- ๋ด๋ถ ํด๋์ค์ ์ฅ์
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 |