🌟 접근 제한자
1. 정의
함수나 필드(변수) 접근을 제한할 수 있습니다.
• 기본적으로 다른 파일에서 import만 받으면 public 하게 접근이 가능합니다.
• private 로 접근을 제한 했을 경우, 파일 내부에서만 접근이 가능합니다.
2. private 선언 방법
필드와 함수 모두 이름 앞에 _ 을 입력해주면 됩니다.
class Student {
String? _name;
}
🌟 Getter
1. 선언 방법
타입 get 게터명 {
return 게터 반환 값
}
단순히 반환값만 작성할 경우 아래와 같이 람다식 함수로 표현할 수 있습니다.
타입 get 게터명 => 게터반환값
2. 예제
class Student {
String? name;
int? _age = 0;
int? get age => _age;
}
void main() {
Student student = Student();
print(student.age);
}
🌟 Setter
1. 선언 방법
set 세터명(세터 타입 매개변수명) {
할당할_세터_변수 = 매개변수명;
}
2. 예제
class Student {
String? name;
int? _age = 0;
set age(int? value){
_age = value;
}
}
void main() {
Student student = Student();
student.age = 20;
}
🌟 Getter, Setter 응용 예제
• index.dart
import 'class/student.dart';
void main() {
Student girlStudent = Student(name: '오냥', age: 10);
girlStudent.printTinfo();
// ----------------
// name: 오냥 학생
// age: 10
// ----------------
// getter 가져오기
girlStudent.name = '오묘';
print('main = ${girlStudent.name}');
// getter 오묘 학생
// main = 오묘 학생
}
• student.dart
class Student {
Student({required String name, this.age}) : _name = '$name 학생';
// 변수 앞에 _가 있을 경우
// priavat
String _name; // 초기값 할당
// public
int? age; // null을 허용
set name(value) {
_name = '$value 학생';
}
String get name {
print('getter $_name');
return _name;
}
void printTinfo() {
print('----------------');
print('name: $_name');
print('age: $age');
print('----------------');
}
}
'🌈 Programming > Dart' 카테고리의 다른 글
[Dart] 상속과 Super, Override (0) | 2022.06.07 |
---|---|
[Dart] 클래스 생성자(Class Constructor) (0) | 2022.06.06 |
[Dart] 클래스(Class) 선언과 인스턴스(Instance) (0) | 2022.06.06 |
[Dart] 객체 다루기 Map 타입 (0) | 2022.06.06 |
[Dart] 열거형 변수(List, Set)와 제네릭(Generic) (0) | 2022.06.06 |