[flash chat] static 구문
2021. 1. 25. 06:46ㆍFlutter
[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 |