Static?
정적 변수는 특정 클래스와 연관된 변수를 나타냅니다. 이러한 변수는 클래스 수준에 정의되며 해당 클래스의 모든 객체 인스턴스 간에 공유됩니다.
정적변수 (Static Variables)
특정 클래스와 관련이 있으며 클래스의 모든 인스턴스(객체)에 의해 공유되며 동일한 값 또는 상태를 가집니다. 정적 변수는 객체 지향 프로그래밍 언어에서 자주 사용되며 클래스의 모든 인스턴스가 공유해야 하는 데이터를 저장하는 데 유용합니다. 정적 변수에는 클래스 이름을 사용하여 액세스 할 수 있으며 객체 참조가 아닌 클래스 이름을 이용합니다.
class MyClass{
Static int staticVar = 10;
정적 변수 액세스
int value = MyClass.staticVar;
정적 메서드 (Static Methods)
특정 인스턴스에 속하지 않고 클래스 자체에 속하는 메서드입니다. 이런 메서드는 객체를 생성하지 않고도 클래스 이름을 통해 호출할 수 있습니다. 정적 메서드는 주로 유틸리티 함수 또는 클래스와 관련된 작업을 할 때 사용됩니다.
class math {
static int add (int a, int b){
return a+b;
}
}
정적 메서드 호출
int result = math.add(5,3);
Static 사용
정적 변수를 사용하면 클래스 수준의 데이터를 공유할 수 있고 상수 값을 정의하는 데 사용됩니다. 또한 클래스 내에서 객체 인스턴스와 관련이 없이 유틸리티 함수를 구현할 때 정적 메서드를 사용됩니다.
// 유틸리티 함수 = 프로그램에서 자주 사용되는 작업을 수행하는 함수
클래스가 메모리에 올라갈 때 이미 자동적으로 생성되기에 공통 값을 유지해야 할 때도 사용됩니다.
메서드에서 인스턴스변수를 필요로 할 때는 static을 사용하지 않습니다.
메서드에서 인스턴스변수를 필요로 하지 않을 때는 static 사용합니다.
Static 장점
- 메모리 효율적 사용 가능
- 속도 빠름
Static 단점
- 테스트 어려움
- 객체 지향 원칙에 위배
'JAVA' 카테고리의 다른 글
Lambda (0) | 2023.10.29 |
---|---|
HashSet, HashMap (0) | 2023.10.23 |
Generics (1) | 2023.10.22 |