본문 바로가기

[Flutter, Dart] 생성자, Named Constructor, 이니셜라이져 정리

ironwhale 2022. 1. 16.

전체 코드

void main() {
  
  Mac myMac = Mac('red','16');
  
  print(myMac.color);
  print(myMac.screenSize);
  
  
  Map<String, dynamic> json = {'color':'blue','size':'14'};
  
  Mac jsonMac = Mac.fromJson(json);
  
  print(jsonMac.color);
  print(jsonMac.screenSize);
  
  Mac forwardMac=Mac.forward('amber','14');
  
  print(forwardMac.color);
  print(forwardMac.screenSize);
 
}



class Mac{
  
  String? color;
  String? screenSize;
  
  // 사용법1 
  Mac(this.color,this.screenSize);
  
  // Forward Constructor
  Mac.forward(color,screen):this(color,screen);
  
  
  // 사용법2
  // Mac(String clr,String size){
  //   color = clr;
  //   screenSize = size;
  //   }
  
  
  // Named Constructor
  
  Mac.fromJson(Map<String, dynamic>json){
    color = json['color'];
    screenSize = json['size'];
  }
  
  
    // Named Constructor with Initializer
  
  Mac.fromJson2(Map<String, dynamic>json):
    color = json['color'],
    screenSize = json['size'];

댓글