1. 캡슐화 란?
- 내부 데이터를 안전하게 보호하기 위해 사용한다.
- 개발한 사람과 사용하는 사람이 다른 경우 손쉬운 사용을 위함 ( ex, 리모컨; 내부구조를 모르지만 버튼 조작으로 손쉽게 사용할 수 있음)
- getter, setter 로 접근하며 접근 제한자로 문법적으로 사용할 수 잇는 허용범위를 지정할 수 있다.( 권한설정; 내부자는 수정을 할 수 있지만 외부에서는 수정을 할 수 없도록 제한 )
2. class 캡슐화
- 기본적으로 클래스의 멤버변수는 _(private)로 외부 접근을 제한하고 필요한 경우 getter, setter 로 접근하여 사용한다.
class Student{
String _name = '이름';
set name(value){
_name = value;
}
get name => _name; // String get name { return _name; } 과 동일
}
* Java 와 유사하지만 getter, setter 를 좀 더 효율적으로 작성할 수 있도록 문법이 조금 다르게 작성될 수 있다.
3. 접근 제한자
- 클래스 내부에서만 사용될 경우(private) 변수를 정의 할 때 , 변수명 앞에 _ 를 붙여서 표기하면 된다.
- public 인 경우 별도의 표기없이 정의 및 사용하면 된다.
class Student {
String _name = '이름';
set name(value) {
_name = value;
}
get name => _name; // String get name { return _name; } 과 동일
// java 방식도 가능
String getName() {
return _name;
}
}
void main(List<String> args) {
Student stu = Student();
//set name 으로 멤버 변수 설정
stu.name = 'jhon';
// get name으로 멤버 변수 값 불러오기
print(stu.name);
// java 방식
print(stu.getName());
}
'Flutter > Dart' 카테고리의 다른 글
Dart 연산자 (0) | 2023.04.20 |
---|---|
Dart 클래스(class) (0) | 2023.04.19 |
Dart 함수(function, main function) (2) | 2023.04.19 |
Dart 반복문 ( for, while, do while, continue, break ) (0) | 2023.04.19 |
Dart 조건문 ( if, if - else, if - else if - else, switch ) (0) | 2023.04.19 |