배운 것 기록/java

로컬 변수, 멤버변수

키죽 2022. 5. 24. 17:12

로컬 변수 Local Variable

  • 라이프 사이클이라고도 한다. 초기화 후에 사용해야한다.
  • for, if 문을 포함한 메서드 내부에서 선언된 변수이다. 주로 중괄호 내부에서 선언된다.
  • 메서드 파라미터에 선언되는 파라미터 변수도 일종의 로컬 변수이다.

 

멤버 변수 Member Variable

  • 클래스 내부, 메서드 외부에서 선언되는 변수이다.
  • 초기화를 따로 하지 않으면 기본값으로 자동 초기화된다.
  • 클래스 내의 생성자나 메서드 등에서 접근 가능하고 클래스 내에서 동일한 변수로 취급된다.

- 클래스(정적/static) 멤버변수

- 인스턴스 멤버 변수

인스턴스가 생성될 때마다(new) 각각의 공간이 할당되어 인스턴스가 다르면 저장공간이 달라 멤버변수에 저자되는 값이 다를 수 있다.

 

package static_var;

public class Px1 {

	public static void main(String[] args) {
		VariableEx ve = new VariableEx();
		
		System.out.println(ve.instanceMember);
     	   	// 출력: 인스턴스멤버변수
		System.out.println(VariableEx.classMember);
     	  	// 출력: 클래스멤버변수
		ve.instanceMethod("파라미터 변수");
    	    	// 출력: 인스턴스멤버변수 클래스멤버변수 파라미터변수 로컬변수
	}
}

class VariableEx {
	
	// 멤버 변수 선언
	String instanceMember = "인스턴스멤버변수";
	String instanceMember2;	// 초기화하지 않을 경우 기본값(null)으로 자동 초기화됨
	static String classMember = "클래스멤버변수";
	
	// 멤버 메서드 정의
	public void instanceMethod(String parameterVariable) {
		
		String localVariable = "로컬변수";
		
		// 메서드 내에서는 멤버변수와 자신의 메서드에서 선언된 로컬변수 모두 접근 가능
		System.out.println(instanceMember);
		System.out.println(classMember);
		System.out.println(parameterVariable);
		System.out.println(localVariable);
		
		// 로컬변수는 반드시 초기화 후에 사용해야함
		String localVariable2;
//		System.out.println(localVariable2);
		
	}
	
	public void instanceMethod2() {
		// 각 변수에 접근
		// 메서드 내에서는 멤버변수와 자신의 메서드에서 선언된 로컬변수에만 접근 가능
		System.out.println(instanceMember);
		System.out.println(classMember);
		
		// 자신의 메서드 내에서 선언되지 않은 로컬변수는 접근 불가!
//		System.out.println(parameterVariable);
//		System.out.println(localVariable);
	}
	
	
}