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 |
package p278;
class p281 {
int iv = 10; // 클래스 변수안에 존재하는 인스턴스 초기화후 iv에 10이 존재
static int cv = 20; // 클래스 멤버 statc cv에 20이 존재
int iv2 = cv; // 인스턴스 변수는 클래스 변수를 참조할수 있다.
// 그러나 아래와 같이 클래스 변수는 인스턴스변수를 참조할수 없다. 에러발생!!!
/* * static int cv2=iv; 클래스변수는 인스턴스 변수를 사용 할 수 없음 */
static int cv2 = new p281().iv;
static void staticMethod1() {
System.out.println(cv);
/* System.out.println(iv); 클래스메서드에서 인스턴스 변수를 사용불가 */
// 객체를 생성한 후에 인스턴스변수의 참조가능
p281 c = new p281();
System.out.println(c.iv);
}
void instanceMethod1() {
System.out.println("인스턴스변수에서 호출하는 클래스변수" + cv);
System.out.println("인스턴스에서 호출하는 인스턴스변수" + iv);
}
static void staticMethod2() {
staticMethod1();
/* instanceMethod1(); 클래스메서드안에서는 인스턴스메서드를 호출할수 없다. */
p281 c = new p281();
c.instanceMethod1();
}
void instanceMethod2() {
staticMethod1();
instanceMethod1();
}
}
|
cs |
다음은 클래스변수와 인스턴스변수의 차이점을 나열한 소스코드이다.
본 소스코드를 통해 자바에 대해 자세히 알수 있다.
'OLD > 자바' 카테고리의 다른 글
기본형 매개변수 VS 참조형 매개변수 (0) | 2017.05.25 |
---|---|
Super()-조상 클래스의 생성자 (0) | 2017.05.01 |
오버라이딩의 조건 (0) | 2017.05.01 |
자바-생성자 (0) | 2017.04.27 |
자바-오버로딩에 관해서 (0) | 2017.04.24 |