목차
반응형
안녕하세요!
다트 언어의 생성자와 게터, 세터를 알아보겠습니다.
생성자
- 생성자는 인스턴스화하는 방법을 제공하는 일종의 메서드
- 다트는 기본 생성자를 제공함, 기본 생성자는 클래스명과 같은 이름의 메서드
class Person {
String? name;
int? age;
}
void main() {
var person = Person(); //기본 생성자
}
- 사용자 정의 생성자를 추가하면 기본 생성자를 사용할 수 없지만 선택 매개변수를 사용하면 Person()로 호출 가능
class Person {
String? name;
int? age;
Person({this.name, this.age}); //생성자
}
void main() {
var person = Person(); //가능
var person2 = Person(name: '홍길동', age: 20); //가능
}
게터, 세터
- 프라이빗 변수에 접근하려면 게터(읽기)와 세터(쓰기) 메서드가 필요
- 변수 앞에 _ 기호가 없으면 어디에서든 접근할 수 있는 퍼블릭 변수이므로 게터와 세터는 불필요
- _ 기호가 있는 프라이빗 변수는 클래스 외부에서 접근하려면 게터와 세터 메서드 필요
//person.dart
class Person {
String? name;
int _age = 10;
int? get age => _age;
}
//main.dart
import 'person.dart';
void main() {
var person = Person();
print(person.age); //_age 값 출력
}
- 게터는 프라이빗 변숫값에 변경을 주어 사용할 때에도 유용
//rectangle.dart
class Rectangle {
num _left, _top, _width, _height;
Rectangle(this._left, this._top, this._width, this._height);
num get right => _left + _width;
set right(num value) => _left = value - _width;
num get bottom => _top + _height;
set bottom(num value) => _top = value - _height;
num get left => _left;
//main.dart
import 'rectangle.dart';
void main() {
var rect = Rectangle(5, 5, 5, 5);
print(rect.right); //10
rect.right = 12;
print(rect.left); //7
}
반응형
'자기계발 > IT' 카테고리의 다른 글
[Flutter/플러터] 다트(Dart) 언어 추상 클래스 알아보기 (52) | 2023.02.21 |
---|---|
[Flutter/플러터] 다트(Dart) 언어 상속 알아보기 (9) | 2023.02.21 |
[Flutter/플러터] 다트(Dart) 언어 접근 지정자 알아보기 (11) | 2023.02.20 |
[Flutter/플러터] 다트(Dart) 언어 클래스 알아보기 (57) | 2023.02.18 |
[Flutter/플러터] 다트(Dart) 언어 분기와 반복(if else, switch, for) (29) | 2023.02.17 |