개발공부

[Java] 멤버 변수와 지역 변수의 차이점 본문

Java/Basic

[Java] 멤버 변수와 지역 변수의 차이점

mscha 2022. 7. 4. 15:20

멤버 변수 / 지역변수

멤버 변수는 클래스에 선언하는 변수이다.

지역변수는 메소드나 생성자 안에 선언하는 변수이다.

 

그래서 지역 변수는 메소드나 생성자가 한번 실행되면 그때만 stack 영역에서 

머물다 실행이 끝나면 바로 소멸되어 버린다.

만약 메소드나 생성자가 실행된 후에도 데이터가 사라지지 않기 위해서는

멤버변수를 생성하고 함수나 메소드 안에서 멤버변수에 값을 할당해 주면 된다.

 

ex

만약 아래와 같은 클래스가 있다면 

Data 클래스의 객체를 생성했을 때 resultInt라는 변수는 사라지게 된다.

public class Data {

	public Data() {}
	public Data(int x, int y) {
		int resultInt = x + y;
	}
}

하지만 아래와같이 멤버 변수를 생성하고 그 변수에 값을 할당해주면

생성자가 한번 실행되도 변수가 사라지지 않게 된다.

public class Data {
	
    int resultInt;
    
	public Data() {}
	public Data(int x, int y) {
		resultInt = x + y;
	}
}