-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJava202_inner.java
More file actions
58 lines (49 loc) · 1.78 KB
/
Copy pathJava202_inner.java
File metadata and controls
58 lines (49 loc) · 1.78 KB
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
package java0914_inner;
import java0914_inner.OuterInstance.InnerInstance;
/*
* class 클래스명{
* 멤버변수;
* static{ }
* 생성자
* 메소드;
* 내부클래스;
* }
*
* 내부클래스
* 1 클래스 안에 정의된 클래스이다.
* 2 특정 클래스 내에서만 주로 사용되는 클래스이다.
* 3 외부클래스의 private으로 선언된 멤버변수를 직접적으로 접근해서 처리할 수 있다.
*
* 내부클래스 종류
* 1 인스턴스 클래스 :외부클래스의 멤버변수 선언위치에 선언하며, 외부클래스의
* 인스턴스 멤버처럼 다루어진다. 주로 외부 클래스의 인스턴스 멤버들과
* 관련된 작업에 사용될 목적으로 선언된다.
* 2 스태틱 클래스 : 외부클래스의 멤버변수 선언위치에 선언하며, 외부클래스의
* static멤버처럼 다루어진다.
* 주로 외부클래스의 static멤버, 특히 static메서드에서 사용될
* 목적으로 선언된다.
* 3 지역클래스 : 외부 클래스의 메서드나 초기화블럭 안에 선언하며,
* 선언된 영역 내부에서만 사용될 수 있다.
* 4 익명클래스 : 클래스의 선언과 객체의 생성을 동시에 하는 이름없는 클래스이다.
*/
class OuterInstance {
private int num;
private int data;
public void display() {
System.out.println("display");
}
class InnerInstance {
public void prn() {
num = 10;
System.out.println(num);
}
}
}
public class Java202_inner {
public static void main(String[] args) {
OuterInstance outer = new OuterInstance();
outer.display();
OuterInstance.InnerInstance inner = outer.new InnerInstance(); // Inner 클래스를 사용하기위해서는 Outer 객체 생성을 먼저 해야한다.
inner.prn();
}
}