Dart - Class

GunYong·2023년 2월 13일
0

Today I Learned

목록 보기
15/15
post-thumbnail

Dart - Classes

class 안에서 property를 선언할때에는 타입을 사용해서 정의해야한다.

class Player {
  String name = 'gunyong';
  int age = 25;
}

void main() {
  var player = Player();
  print(player.name);
}

위에서 name의 값을 변화시키는 것을 방지하려면

class Player {
  final String name = 'gunyong';
  int age = 25;
}

final 을 붙여준다

method를 설정해줄 때에는

class Player {
  final String name = 'gunyong';
  int age = 25;
  
  void sayhello() {
    print('hello $name!');
  }
}

dart에서는 this 사용을 지양한다

constructor 만들어주기

class Player {
  final String name;
  int age;

  Player(this.name, this.age);

  void sayHello() {
    print('hello $name! i am $age old');
  }
}

void main() {
  var player = Player('gunyong', 20);
  player.sayHello();
}

class 를 좀 더 동적으로 만들기 위해서 constructor를 만들어주는데 dart에서는 class명과 동일하게 constructor를 만들어준다.

parameter가 많아질수록 가독성이 떨어지기 때문에 named parameter를 설정해서 나타내주면 가독성을 높일 수 있다.

class Player {
  final String name;
  int age;
  String team;
  int money;

  Player({
   required this.name,
   required this.age,
   required this.team,
   required this.money,
  });

  void sayHello() {
    print('hello $name! i am $age old');
  }
}

void main() {
  var player = Player(
    name: 'gunyong',
    age: 12,
    team: 'red',
    money: 1000,
  );
  var player2 = Player('yonggun', 25, 'blue', 2000);
  player.sayHello();
  player2.sayHello();
}

player 하고 player2의 내장 값을 비교해서 보면 player의 값이 더 가독성이 높은 걸 볼 수 있다.

named parameter / positioned parameter의 쓰임새에 대해 더 공부해봐야겠디

0개의 댓글