이제 클래스나 인스턴스를 이용하여 현실세계를 객체 지향 프로그램으로 자유롭게 개발 할 수 있게 되었다.
하지만, 실수로 속성을 덮어 쓰거나, 잘못된 조작 하는 등의 휴먼 에러 (human error) 를 완전히 없앨 수는 없다.
그래서 Dart 에는 실수를 미연에 방지하는 “캡슐화" 라는 방법이 있다.
default 값은 public 이며 어디에서나 접근가능하다.
_ 로 시작하는 변수나 메서드는 내부에서만 접근할 수 있는 private로 간주된다.
String name; //public
int _age; //private
getter와 setter는 말 그대로 어떤 오브젝트 혹은 변수의 값을 가져오거나, 설정해주는 역할을 하는 메소드를 말한다.
class Vehicle
String make;
String model;
int manufactureYear;
int vehicleAge;
String color;
int get age{
return vehicleAge;
}
void set age(int currentYear){
vehicleAge = currebtYear - manufactureYear;
}