[flash chat] static 구문

2021. 1. 25. 06:46Flutter

[flash chat] static 구문 

static이란 일반 객체를 만들 때 같이 메모리에 저장하는 것이 아닌 따로 메모리를 두어 static 구문을 객체가 공유하여 사용할 수 있게 해주는 구문이다.

class Car{
	int numOfSeats;
}

Car car = Car();
car.numOfSeats = 5;

위와 같은 클래스가 있을 때 이를 사용하기 위해서는 객체를 선언 후  접근해야한다. 하지만 값을 각 클래스가 값을 공유하고 객체 선언 없이 바로 이용할 수 있으면 좋을 때가 있다. 또한 위와 같은 경우 값을 이용할 때 마다 메모리의 낭비가 발생해서 좋지 않을 수도 있다. 

 

이런 예로는 3.14를 뜻하는 PI, 디자인 패턴 중에는 Singletone 등이 있을수 있다.

 

static 사용 예제

class Car{
	static int numOfSeats = 3;
}

print(Car.numOfSeats); // 3
Car.numOfSeats++;
print(Car.numOfSeats); // 4

 

위와 다르게 클래스 이름에 바로 접근할 수 있다. 하지만 특정한 경우 값을 변형시키기 싫을 수가 있다. 이럴때는 자바는 final, Dart는 const를 사용하여 값의 변형을 막을 수 있다. 

 

Class Car{
  static const int numOfSeats = 4;
}

print(Car.numOfSeats); // 4
Car.numOfSeats++; // error

 

또한 메소드 또한 static을 붙여서 원하는 객체선언 없이 클래스 선언에 원하는 메소드를 불러 올 수 있다. 

Class Car{
  static const int numOfSeats = 4;
  static void howManySeats(int car){
  	print(car * numOfSeats);
  }
}

print(Car.howManySeats); // 4

'Flutter' 카테고리의 다른 글

[Dart] Mixins  (0) 2021.01.25
[flash chat] animation  (0) 2021.01.25
[Dart] 비동기 프로그래밍  (0) 2021.01.21
섹션 10:Quizzler [List, 조건문, Class, Object]  (0) 2020.11.19
Hot reload Hot Restart  (0) 2020.11.12