Java - InnerClass
2020. 7. 6. 23:13ㆍJava
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
|
package inner_class_stage5;
import inner_class_stage5.OuterClass.InnerClass;
public class InnerClassEx {
public static void main(String[] args) {
//클래스 내의 멤버변수 또는 메서드에 접근하려면 인스턴스 생성이 필수
OuterClass oc=new OuterClass();
oc.print();
//내부클래스의 인스턴스 생성
//주의! 내부클래스 인스턴스를 직접 생성할수 없다.
// InnerClass ic=new InnerClass();//컴파일 에러 발생!!!
//new 키워드 뒤에 내부클래스를 직접 지정할수없고
//외부클래스참조변수명.new 내부클래스명();
InnerClass ic=oc.new InnerClass();
ic.print();
}
}
/*
* 내부클래스(Inner CLass)
* 클래스 내에 또 다른 클래스를 정의하는 것(=중첩클래스, Nested Class)
* 특정 클래스를 하나의 클래스 내에서만 전용으로 사용할 때 주로 사용
* GUI 구현에 많이 사용되는 방법
*
*/
class OuterClass{
private int instanceVar;
public void print() {
//멤버메서드에서는 멤버변수의 접근 제한자와 관계없이 자유롭게 접근 가능
System.out.println(instanceVar);
}
//내부클래스 정의
class InnerClass{
private int innerInstanceVar;
public void print() {
//내부 클래스 내에서는 외부클래스의 멤버에 자유롭게 접근 가능
System.out.println(instanceVar+", "+innerInstanceVar);
// print();//멤버메서드 접근
// System.out.println(innerInstanceVar);
}
}
}
|
cs |
GUI 구현에 많이 사용되는 개념인 InnerClass를 배워보았는데 크게 어렵진 않으니 잘 보고 개념만 숙지해 두자.
'Java' 카테고리의 다른 글
Java - Layout,JTextArea,JTextField,JPanel (0) | 2020.07.07 |
---|---|
Java - JFrame,ActionListener (0) | 2020.07.07 |
Java - JFrame (0) | 2020.07.06 |
Java - javax.swing, GUI,JFrame (0) | 2020.07.02 |
Java - Thread,synchronized (0) | 2020.07.02 |