변수 2

IT/JAVA / / 2021. 5. 16. 22:15

1. 변수의 스코프와 라이프타임

 

변수의 스코프란 변수를 사용할 수 있는 범위를 말한다.

{ } 블록 안에서 변수를 선언하면 그 영역이 끝나기 전까지는 사용가능한것.

 

클래스 영역 ({ } 블록 밖에서) 에서 선언한 변수는 global variable (전역변수) 이라고 한다.

{ } 블록 안에서 선언된 변수는 local variable (지역변수) 라고 불리어진다.

 


class scope
{
    int scopeValue1 = 10; // Class 영역에 선언한 변수 (Global Variable)
    
    static int scopeValue = 30; // Static 추가시 어디서든 사용 가능하게 변경됨 static 붙이지
    				//않는다면 method 내에서 인스턴스화가 필요함.
    
    public static void main(String[] args)
    {
    	int scopeValue2 = 20; // local variable 지역 변수 method 영역에 선언된것.
    }
}

라이프타임은 다음과 같다.

1. class variables : 클래스가 호출되면서 생성이 되며 이후 자바 어플리케이션이 종료될때 같이 소멸된다

2. local variables : { } 블록 의 시작점에 생성되어 끝나는 지점에서 소멸된다.

3. instance variables : 특정 클래스가 메모리에 남아있을때까지 존재한다. 

 

 

- 참고 한 용어

 

선언 위치에 따른 변수의 종류는 다음 4가지와 같다. 

 

1. 클래스 변수 (Class variables) - 클래스가 처음 호출될 떄 시작, 프로그램이 끝날 때 소멸 

클래스 변수는 인스턴스를 생성하지 않아도 어디서든 사용할 수 있다. instance 앞에 static을 붙여주면 class variable 로 사용이 가능

 

2. 인스턴스 변수 (Instance variables) - 객체가 생성될 때 시작, 해당 객체를 참조하는 객체가 없을 때 소멸

독립적인 저장공간을 가진 변수로서, 인스턴스마다 고유한 상태를 유지해야 할때 사용한다.

 

3. 지역 변수 (Local variables) - 메소드안에서만 선언되고 유효한 변수 

{} 블록을 벗어나면 소멸되어 지역변수를 사용할 수 없음.

 

4. 매개 변수 (Parameters)

- 다른 함수에서 값이 계산된 뒤에 내부의 method에서 결과값을 사용하는 변수

 

 

 

 

 

출처: 

https://itsuit.tistory.com/47 [ITsuIT]

http://tcpschool.com/c/c_function_variableScope

https://www.learningjournal.guru/article/programming-in-java/scope-and-lifetime-of-a-variable/

728x90
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기