JAVA
[ java ] 클래스 변수, 인스턴스 변수, 지역변수
Adose
2024. 11. 14. 12:33
클래스 변수, 인스턴스 변수, 지역변수
public class variableTest {
static int classVariable; //클래스변수 (static변수, 공유변수)
int instanceVariable; //인스턴스변수
void method() {
int localVariable; //지역변수
}
}
인스턴스 변수(instance vairable)
- 클래스 영역에 사용한다.
- 클래스 객체(인스턴스)를 생성할 때 만들어진다
- 생성된 객체(인스턴스)는 독립적인 저장공간을 가진다.
- 객체 생성 시마다 매번 새로운 변수가 생성된다고 생각하면 된다.
클래스 변수(class variable)
- 클래스 영역에 선언되며, static을 붙여서 사용한다.
- 모든 객체(인스턴스)가 공통된 저장공간을 공유하게 된다.
- 클래스가 여러 번 생성되어도 Static 변수(=클래스 변수)는 처음 딱 한 번만 생성됨
- 객체(인스턴스) 생성 없이 사용이 가능하다.
지역변수(local variable)
- 메서드 내에 선언되며, 해당 메서드 내에서만 사용이 가능하다.
- 메서드가 종료되면 소멸된다.
- for, while문내에 선언된 지역변수는 블럭을 벗어나면 사용이 불가능하다.
❓ 인스턴스 메서드, 클래스 메서드
- 인스턴스 메서드는 인스턴스 소속 이기 때문에, 클래스를 통해서 접근이 불가능하다.
class methodTest {
public static void classMethod(){
System.out.println("class method");
}
public void instanceMethod(){
System.out.println("instance method");
}
}
public class App{
public static void main(String[] args) {
methodTest.classMethod();
methodTest.instanceMethod(); //오류 발생
}
}
객체(인스턴스) 생성 없이 호출이 가능하다.