Flutter Study Day 4 Dart Encapsulation

정정원·2023년 12월 4일
0

Flutter Study

목록 보기
6/17

캡슐화

이제 클래스나 인스턴스를 이용하여 현실세계를 객체 지향 프로그램으로 자유롭게 개발 할 수 있게 되었다.
하지만, 실수로 속성을 덮어 쓰거나, 잘못된 조작 하는 등의 휴먼 에러 (human error) 를 완전히 없앨 수는 없다.
그래서 Dart 에는 실수를 미연에 방지하는 “캡슐화" 라는 방법이 있다.

  • 캡슐화를 하여 멤버나 클래스로의 접근을 제어할 수 있음
  • 필드에 “현실세계에서 불가능한 값"이 들어가지 않도록 제어
  • 정보은닉과 보호를 위해 사용된다.
  • 연관된 목적을 가지는 객체의 속성, 행위를 클래스로 묶어서 하나의 기능을 수행하는 객체를 만들고 상세내용은 외부에 노출 될 수 없도록 감춘다.

접근 지정자

default 값은 public 이며 어디에서나 접근가능하다.
_ 로 시작하는 변수나 메서드는 내부에서만 접근할 수 있는 private로 간주된다.

  • private 멤버는, 동일 클래스내에서만 접근 가능
  • public 멤버는, 모든 클래스에서 접근 가능
String name; //public
int _age; //private

public, private 의 권한 제어

getter 와 setter

getter와 setter는 말 그대로 어떤 오브젝트 혹은 변수의 값을 가져오거나, 설정해주는 역할을 하는 메소드를 말한다.

  • 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;
    }
  • Read Only, Write Only 필드의 실현
  • 필드의 이름 등, 클래스의 내부 설계를 자유롭게 변경 가능
  • 필드로의 액세스를 검사 가능

0개의 댓글