Dart class - basic 본문
반응형
05. dart class - basic
01. class 선언 방법
- 멤버변수로 var 사용하지 않고 타입지정해주기
- 멤버변수를 불변하게 유지하고 싶을 때, final 키워드 사용
- 일반적으로 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