- static키워드가 붙어 있는 정적 멤버(필드 또는 메소드)는 각 인스턴스가 아닌, 클래스에 실체가 준비된다.
- 인스턴스를 생성하지 않아도 이용가능하다.
- 정적메소드는 그 내부에 정적이지 않은 메소드나 필드를 이용하는 것이 불가능하다.
static
키워드는 Dart에서 클래스 멤버(변수 또는 메서드)를 정의할 때 사용됩니다.static
으로 정의된 멤버는 해당 클래스의 인스턴스와는 독립적으로 클래스 자체에 속하며, 클래스의 모든 인스턴스가 공유하는 값 또는 동작을 나타냅니다.
정적 변수는 클래스의 모든 인스턴스가 공유하는 변수입니다. 클래스의 하나의 인스턴스에서 변경하면 다른 모든 인스턴스에서도 변경된 값이 반영됩니다.
class Counter {
static int count = 0; // 정적 변수 count 선언 및 초기화
void increment() {
count++; // count 증가
}
}
void main() {
Counter c1 = Counter();
Counter c2 = Counter();
c1.increment();
print('Count after incrementing c1: ${Counter.count}'); // c1 증가 후 count 값 출력
c2.increment();
print('Count after incrementing c2: ${Counter.count}'); // c2 증가 후 count 값 출력
}
// 출력
Count after incrementing c1: 1
Count after incrementing c2: 2
정적 메서드는 클래스의 인스턴스를 생성하지 않고 호출할 수 있는 메서드입니다. 정적 메서드는 클래스의 인스턴스 속성에 접근할 수 없고, 주로 해당 클래스와 관련된 유틸리티 함수를 구현하는 데 사용됩니다.