Language/Java

[JAVA 09] 자바 변수(Variable) ① 유효 범위

reifier.tistory.com 으로 이전하였습니다. 2018. 2. 4. 18:34
반응형


■ 변수 ( Variable )


1. 유효 범위

<1> 멤버변수

- 클래스 전역에서 유효하다.

- 초기화를 JVM이 해준다.

- 종류 

└ 클래스 소속

└ 객체 소속

<2> 지역변수

- 해당 메소드나 생성자에만 유효하다.

- 초기화를 개발자가 해줘야 한다.

- 종류

└ 선언 초기화 변수

└ 파라미터 변수


   <잘못된 예1>

[ error : variable k migth not have been initialized ]

[ 에러 : 변수 k 는 초기내용이 설정되지 않았을 것입니다. ]

즉 지역 변수는 개발자가 직접 초기화를 해주어야 합니다.


  


    <잘못된 예2> ┐

[ error : cannot find symbol ]

[ 에러 : 심볼을 찾을수 없습니다. ]

즉 지역변수는 그 지역내에서만 영향력이 미칩니다.



 < 잘된 예1 > ┐

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
class VS1{ //Variabe Study1 유효범위에서의 변수
    int i = 1
    //  └ (객체소속)멤버변수 , JVM이 초기화를 해줌
    static int j;
     //  └ (클래스소속)멤버변수 , JVM이 초기화를 해줌
 
    VS1(){
        System.out.println("VS1() i : " + i + ", j : " + j);
        int k = 2;    // 지역변수 , 해당 생성자나 메소드에서만 유효하다.
                 // 초기화를 개발자가 해주어야 한다.
        System.out.println("VS1() k : " + k);
    }
 
    void method(int a){ // (파라미터) 변수
        int k = 3;
        System.out.println("method() k : " + k);
        System.out.println("method(a) : " + a);
    }
 
    public static void main(String[] args) {
        VS1 vs1 = new VS1();    // 지역변수 , 선언초기화 변수
        vs1.method(10);     // 파라미터 변수를 초기값을 개발자가 직접 해주어야 한다.
        System.out.println("main() i : " + vs1.i);    // 객체 소속이기 때문에 선언을 해주고 사용해야 한다. 
        System.out.println("main() j : " + j);     // 클래스 소속이기 때문에 그냥 가져다 사용해도 된다.
    }
}
 

cs






반응형