[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
출처: https://hoony-gunputer.tistory.com/entry/flash-chat-static-구문 [후니의 컴퓨터]
'Flutter' 카테고리의 다른 글
Flutter 2Team Dart Mixins (0) | 2021.03.01 |
---|---|
Flutter 2Team Animation (0) | 2021.03.01 |
[Flutter-1Team] 섹션 13 - 비동기 (0) | 2021.01.27 |
[Flutter 2 team]섹션 10:Quizzler [List, Class, Object] (0) | 2020.12.31 |
[Flutter - 1team] 섹션 9 : Xylophone - Using Flutter and Dart Packages to Speed Up Development (0) | 2020.12.25 |