회사에서 윈도우앱 겸 앱을 위해 flutter 해볼 의향을 물어봐,
겸사겸사 시작하게된 flutter 공부 기록
flutter는 Dart라는 언어를 사용한다.
변수 지정 시 타입을 먼저 적고, 변수명 작성
int price = 3000;
객체(클래스) = 인스턴스 = 확장 가능한 기본값이라고 생각하자
내부에 어떤 변수들을 가질지 타입&변수명(멤버변수), 메서드 지정.
클래스는 반드시 생성자를 가져야하며, 생성자를 통해서 인스턴스를 만들어낼 수 있다.
또한 생성자 메서드 내에서, 값을 할당 받을 멤버변수앞에는 this라는 키워드를 붙여준다
-> "지금 내가(생성자 메서드) 들어있는 클래스의 이 멤버변수 한테 값을 할당해줘!"
class A{
int? price;
...
CreateInstance(int price) {
this.price = price
}
}
그치만 위처럼 쓰는것 말고 이렇게 쓰는것을 권장한다고 한다.
class A{
int? price;
...
CreateInstance(this.price)
}
인스턴스 초기화 메소드
인스턴스에 원하는 특징과 개성을 부여하기 위한 것
인스턴스를 생성할 때 인스턴스 내의 멤버변수에 대한 값은 생성자의 인수(argument)로 할당 가능하다.
직접 생성자를 만들어주지 않으면, 다트가 알아서 생성자를 클래스에 추가해준다.(기본옵션이라 눈에 보이진 않지만 사용 가능함)
해당 생성자 메서드를 호출하며 인스턴스를 생성할 수 있다.
만약 인스턴스 내에 변수들이 고정값으로 되어있다면?
생성할때마다 해당 값으로 고정된다.
그렇기에 초기 인스턴스 내의 변수에 값을 할당하지 않고, 생성자를 통해 인스턴스가 만들어질 때 할당해주자.
그래서 생긴것이 널 세이프티(null safety)
널세이프티가 생기기 전에는 비어있는 변수지정이 가능했다.(ex. int number;
)
but, "요즘은 이렇게 작성하면 오류나요!"
클래스 내에서 생성된 변수에는 값이 필요하니 변수를 지정해주려 했던것처럼, 나중에 값을 미입력하는 오류방지를 위해 생겨났다.
그렇다고 초기에 임의의값을 넣어주는것도... 재할당 안하고 넘어가거나 할 수도 있지 않을까
그래서 없을수도 있다고 널 세이프티를 사용한다.
int price = 3000
-> int? price;
(에러메세지 사라짐~)
고정값이 아닌, 인스턴스 생성할때마다 할당해줘야하는 멤버변수들은 널 세이프티 사용하기
공부하며 정리&기록하는 ._. 씅로그