Java/Java Concept

[Java] 변수의 영역(스코프)

군우 2018. 1. 17. 12:59

변수는 한번만 선언될 수 있다.


다시 선언되면 에러가 발생한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package method06;
 
public class prac1 {
    public static void main(String[] args){
        System.out.println("start");
        int a =0;
        if (a==0){
            System.out.println("a = 0");
            int b = 3 ;
            System.out.println("b="+ b);
        }
        else{
        //System.out.println(b); b가 존재하지 않음 error
        }
    //System.out.println(b); // b가 존재하지 않음 error
    }
}
cs

if문의 {} 중괄호 안에서 int b를 선언했을 때,  else 에서도 main에서도 

b를 읽을 수 없다. 변수는  {} 안에서 접근 가능하다.


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
package method06;
 
class LocalVariable
{    
    public static void main(String[] args)
    {
        boolean scope=true;
        if(scope)
        {
            int num=1;
            num++;
            System.out.println(num);
        }
        else
        {
            
            int num=2;
            System.out.println(num);
        }
        
        simple();
    }
    
    public static void simple()
    {
        int num=3;
        System.out.println(num);
    }
}
cs


{} 내에서 선언이 되는 변수를  지역변수 (Local variable)라고한다.

지역 변수는 선언된 지역을 벗어나 버리면  메모리 공간에서 소멸 된다.