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/
최근댓글