OOP의 원칙 중 하나인 캡슐화에 따르면 클래스로 분리한 실제 구현 내용 일부를 외부로 부터 감추어 은닉할 필요가 있다.
아래 예시와 같은 다음과 같은 코드가 있을 때, 앞에 _가 붙은 변수는 해당 클래스 내부에서만 사용할 수 있게 된다. (private) 따라서 해당 클래스 외부에서 인스턴스를 만들어 활용할 때, 변환할 수 없게 된다.
즉,
Quiz instance = new Quiz();
instance._questionNum = 4;
와 같은 조작이 불가능하게 되는 것이다.
import 'questions.dart';
class Quiz {
int _questionNum = 0;
List<Questions> _questionBank = [
Questions('Some cats are actually allergic to humans', true),
Questions('You can lead a cow down stairs but not up stairs.', false),
];
void nextQuestion() {
if (_questionNum < _questionBank.length - 1) {
_questionNum++;
}
}
String getQuestionText() {
return _questionBank[_questionNum].questions;
}
bool getQuestionAnswer() {
return _questionBank[_questionNum].questionNum;
}
}
'📱 Mobile > 📱 (old) Flutter v 1.0' 카테고리의 다른 글
변수 Final (runtime) vs Const (compile-time constants) (0) | 2020.05.18 |
---|---|
Theme, ThemeData 살펴보기 + Hex 값으로 Color 사용하기 (0) | 2020.05.18 |
내장 assets 오디오 파일 재생하기 (0) | 2020.05.17 |
dart 내장 라이브러리 : dart:math library (0) | 2020.05.17 |
Expanded class를 활용한 레이아웃 (0) | 2020.05.17 |