Flutter/Dart 문법

[Dart] 생성자(constructor)

Chafle 2023. 3. 22. 12:14
반응형

Class에 파라미터를 받는 것이 생성자

 

 

기본적으로 클래스부터 생성해보면

void main() {
  Hansoom hansoom = Hansoom();
 
}

class Hansoom {
  String name = '한숨팟';
  List<String> members = ['차','밍','똥','똥철'];

  
  void sayHello() {
    print('안녕하세요 한숨팟입니다.');
  }

  void introduce() {
    print('저희는 차,밍,똥,똥철 입니다.');
  }
}

 

클래스 내부에서

positional constructor부터 만들어보면

 

input을 받고 class내부에 저장해야한다.

 

void main() {
  Hansoom hansoom = Hansoom(
  '한숨팟',
    ['차','밍','똥','똥철'],
  );
}

class Hansoom {

  Hansoom(String name, List<String> members)
      : this.name = name,
        this.members = members;

  void sayHello() {
    print('안녕하세요 한숨팟입니다.');
  }

  void introduce() {
    print('저희는 차,밍,똥,똥철 입니다.');
  }
}

      : this.name = name,
        this.members = members;

 

this.name에서 this는 현재 클래스를 의미하고 this.name은 클래스 내부의 name이고

this.name에 할당하는 name은 파라미터로 input으로 받은 name이다.

 

 

Hansoom(String name, List<String> members)

      : this.name = name,
        this.members = members;

 

이 생성자를 더 간단하게 생략할 수 있다.

 

  Hansoom(this.name, this.members);

 

바로 값을 받아서 바로 넣겠다.

타입은 알아서 유추하게 된다.

 

 

named constructor

naemed parameter와 거의 유사하다

 

 

선언은

Classname.원하는이름(받는형태 받는이름) :

this.members = 받는이름

this.name = 받는이름

 

입력할 때는

Classname.원하는이름(선언하고 value)

 

ex

void main() {


Hansoom hansoom2 = Hansoom.fromList([
  ['김', '이', '박', '최', '정', '오'],
  '한숨팟2'
]);

class Hansoom {

  Hansoom.fromList(List values)
      : this.members = values[0],
        this.name = values[1];

}
반응형

'Flutter > Dart 문법' 카테고리의 다른 글

[Dart] 상속  (0) 2023.03.22
[Dart] Class의 getter와 setter  (0) 2023.03.22
[Dart] 함수의 선언 (parameter에 관하여)  (0) 2023.03.21
[Dart] enum의 선언  (0) 2023.03.21
[Dart] while-if-break 문 / for-if-continue 문  (0) 2023.03.21