앱 만들기 프로젝트/Dart

Dart - 4.1 Constructors(생성자)

지나가는물리학부생 2024. 10. 16. 01:35
반응형

이전 파트에서는 그냥 아무것도 변수를 받지 않는 class를 만들었다.

그러면? 이번엔 변수를 받을 수 있는 class를 만들어 봐야지.

class Player {
  // late를 이용해서 변수 선언은 여기서 하지만 값은 나중에 받아온다고 하기.
  late String name;
  late final int xp;

  // 여기에서 값을 받아오기. class 이름과 똑같아야 함.
  // Constructor
  Player(String name, int xp) {
    this.name = name;
    this.xp = xp;
  }

  void sayHello() {
    print("Hi my name is $name");
  }
}

late로 나중에 받아온다고 하고 Player 함수(class랑 동일해야 함)로 값을 받아온다.

이 방법은 너무 긴데... 다음과 같이 줄일 수 있다.

class Player2 {
  String name;
  final int xp;

  // Constructor
  // 변수 순서 중요함.
  Player2(this.name, this.xp);

  void sayHello() {
    print("Hi my name is $name");
  }
}

이렇게 late를 없애고 this.name, this.xp를 이용해서 바로 불러올 수 있다. 깔끔하네.

이를 main에서 불러오려면...

void main() {
  var player = Player("me", 1000);
  player.sayHello(); // 출력결과: Hi my name is me
  var player2 = Player("another", 100);
  player2.sayHello(); // 출력결과: Hi my name is another
}

이렇게 하면 된다.

이렇게 하면 "순서"가 중요하다.

** 이 얘기를 듣자마자 이거 named parameter도 있을 것 같다는 생각을 했고, 아니나 다를까...

반응형

'앱 만들기 프로젝트 > Dart' 카테고리의 다른 글

Dart - 4.3 Named Constructors  (0) 2024.10.16
Dart - 4.2 Named Constructor Parameters  (0) 2024.10.16
Dart - 4.0 Your First Dart Class  (0) 2024.10.16
Dart - 3.5 Typedef  (0) 2024.10.16
Dart - 3.4 QQ Operator(Null-aware operator)  (0) 2024.10.15