배운 것 기록/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);
}
}