develop/Flutter

[Flutter] dart class 선언하기 & 생성자

방뎁 2022. 10. 27. 10:00
반응형

dart는 참.. 음.. 좋은데 swift를 하다 갈아타면 참 애매한 경우가 있다. 

클래스 선언은 비슷한데 생성자는 참 애매하고 ㅎㅎ 

dart의 class와 생성자는 어떻게 생성하고 사용할까

 

1. dart의 class는 어떻게 선언할까 

class WhatIsClass{

}

 

다른 언어들처럼 선언한다. 

그럼 어떻게 사용할까?

WhatIsClass myClass = WhatIsClass();

 

 

2. 생성자는 어떻게 선언할까

다트에서는 오버로딩이라는 개념이 없기 때문에, 네임드 생성자를 사용해야 한다. 

nullable

class WhatIsClass {
  
  String? myString;
  int? myNumber;
  
  WhatIsClass({ this.myString, this.myNumber});
  
}

 

non nullable

 

class WhatIsClass {
  
  String myString;
  int myNumber;
  
  WhatIsClass({ required this.myString, required this.myNumber});
   
}

 

required 키워드를 사용하여 non nullable 변수를 초기화할 수 있다. 

 

여기서 드는 한가지 궁금한 점은 초기화 코드는 어디서 작성할 수 있냐는 것이다. 

 

class WhatIsClass {
  
  String? myString;
  
  WhatIsClass() {
    // 초기화시 코드!!
  } 
  
}

 

위 코드 처럼 초기화할 수 있다. 

swift 처럼 init() 을 할 수 있다. 

 

 

반응형