static은 프로그래밍에서 정적이라는 의미를 가지고 있다.
주로 java와 같은 객체지향 언어에서 사용이 된다.
static 키워드는 변수, 메서드 블록 또는 내부 클래스에 적용될 수 있다
static 변수 (정적 변수)
- 클래스에 소속된 변수이며, 클래스의 모든 인스턴스에서 공유된다.
- 객체를 생성하지 않고도 클래스 이름을 통해서 접근이 가능하다
- 메모리 공간은 프로그램 실행 시 한 번만 할당이 된다
class MyClass {
static int count = 0;
MyClass() {
count++;
}
}
public class Main {
public static void main(String[] args) {
new MyClass();
new MyClass();
System.out.println(MyClass.count);
}
}
static 메서드 (정적 메서드)
- 클래스 레벨에서 동작하는 메서드로, 객체를 생성하지 않고 호출할 수 있다
- 인스턴스 변수나 메서드에는 직접 접근을 할 수 없다.
static :
여러 객체가 공통 데이터를 공유할 때 유용한다.
static 멤버는 메모리에 한 번만 로드되므로 메모리 낭비를 줄일 수 있다