본문 바로가기

Dart class - basic 본문

Dart

Dart class - basic

개발자로 거듭나기 2023. 4. 28. 17:31
반응형

05. dart class - basic

01. class 선언 방법

  1. 멤버변수로 var 사용하지 않고 타입지정해주기
  2. 멤버변수를 불변하게 유지하고 싶을 때, final 키워드 사용
  3. 일반적으로 class 이름은 대문자로 작성하는게 좋습니다. Dart의 클래스와 타입 시스템에서 일관성을 유지하는 데 도움이 됩니다.
class Player {
  String name = 'tom';
  int xp = 1500;

  void sayHello() {
    // this.name을 해도 상관없으나, class 내부에서 this를 사용하지 않도록 권고하고있다.
    print("hello, my name is $name");
  }
}

void main() {
  // new 생략 가능
  var player = new Player();
  print(player.name); // tom
  print(player.xp); // 1500
  player.sayHello(); // hello, my name is tom
}

02. class 생성자 (constructor)

  • 클래스의 인스턴스 변수를 만들 때, 자동으로 실행되는 메서드
  • 일반적으로 생성자는 클래스의 이름으로된 메서드이다.
  • 생성자 내부에서 클래서 멤버변수에 대한 초기화 진행
class Player {
  late final String name;
  late int xp;

  // 생성자
  Player(String name, int xp) {
    this.name = name;
    this.xp = xp;
  }
}

class Charator {
  // 이렇게 생략이 가능하다
  // 위치를 잘 지켜서, 생성시 name 자리에는 name, xp자리에는 xp를 넣어주도록 합니다.
  // late 키워드 제거 가능
  final String name;
  final int xp;
  Player(this.name, this.xp);
}

void main() {
  var player = Player('tom', 1500);
  var player2 = Player('alice', 2500);
}

03. 생성자의 named arguments

  • positional arguments(위치가 정해진 인자)일 때는 함수 호출부만 봤을 때는, 각각의 인자가 무슨 필드인지 기억하기 어렵기 때문에, 인자가 많아질 수록 named arguments(이름으로 구별)로 사용하는게 좋습니다.
class Player {
  final String name;
  int xp;
  String team;
  int age;

  // null safety 때문에 required 추가
  Player({
    required this.name,
    required this.xp,
    required this.team,
    required this.age,
  });
}

void main() {
  // named parameter 생성자 호출
  var player1 = Player(
    name: "tom",
    xp: 120,
    team: 'Red',
    age: 123,
  );
}
반응형

'Dart' 카테고리의 다른 글

Dart class - advanced  (0) 2023.04.28
Dart class - named constructor  (0) 2023.04.28
Dart 함수 (function) 알아보기  (0) 2023.04.28
Dart 자료형 (Data Type)  (0) 2023.04.28
Dart 변수 알아보기 ( variables )  (0) 2023.04.28
Comments