[Dart] 캡슐화(encapsulation)

AsherKim·2023년 5월 24일
0

플러터 TIL

목록 보기
5/18

캡슐화

Dart에서 캡슐화(encapsulation)는 클래스 내부의 멤버 변수와 메서드에 대한 접근을 제한하는 개념을 의미한다. 캡슐화를 통해 클래스의 내부 구현을 외부로부터 숨기고, 외부에서는 오직 공개된 인터페이스를 통해 클래스와 상호작용이 가능하다. 이는 클래스의 내부 구현의 변경으로 인한 외부 코드에 대한 영향을 최소화하고, 코드의 유지 보수성과 재사용성을 향상시키는 데 도움이 된다.

접근 제한자

Dart는 접근 제한자인 public, privateprotected를 지원한다.
기본적으로 모든 멤버 변수와 메서드는 public이며, 어디에서든 접근이 가능하다. 하지만 _로 시작하는 변수나 메서드는 해당 클래스 내부에서만 접근할 수 있는 private 멤버로 간주된다.

예제 코드

class MyClass {
  String publicVariable; // Public variable
  
  String _privateVariable; // Private variable

  void publicMethod() {
    // Public method
  }

  void _privateMethod() {
    // Private method
  }
}

Getter와 Setter:

클래스의 멤버 변수에 접근하거나 수정하기 위해 GetterSetter메서드를 사용할 수 있다. 이를 통해 변수에 접근할 때 추가적인 로직을 수행하거나, 변수에 대한 읽기 전용 또는 쓰기 전용 접근을 제공 한다.

예제 코드

class MyClass {
  String _privateVariable;

  String get privateVariable {
    // Getter for privateVariable
    return _privateVariable;
  }

  set privateVariable(String value) {
    // Setter for privateVariable
    _privateVariable = value;
  }
}

위와 같이 정의된 privateVariable 은 클래스 외부에서 직접 접근할 수 없고, Getter와 Setter를 통해 간접적으로 접근해야 한다.

profile
추리를 좋아하는 개발자

0개의 댓글