본문 바로가기
Dart/Dart Programming language

[추가학습] Dart에서 게터와 세터 이해하기: 데이터 캡슐화의 기초!

by Maccrey Coding 2024. 10. 18.
728x90
반응형

 

오늘은 Dart 프로그래밍 언어에서 게터(Getter)와 세터(Setter)에 대해 알아보겠습니다.

이 두 개념은 객체 지향 프로그래밍에서 데이터의 접근과 변경을 안전하게 관리하는 데 중요한 역할을 합니다.

초보자도 쉽게 이해할 수 있도록 기초부터 다양한 예제까지 차근차근 설명할게요!

게터(Getter)란?

게터는 클래스의 속성(property)의 값을 가져오는 메소드입니다. 속성은 클래스의 데이터이며, 게터를 사용하면 외부에서 이 데이터를 안전하게 조회할 수 있습니다.

게터의 문법

게터는 get 키워드를 사용하여 정의합니다. 예를 들어, name이라는 속성을 가진 클래스가 있다고 가정해 보겠습니다.

class Person {
  String _name; // private 변수

  Person(this._name); // 생성자

  // 게터
  String get name => _name; // _name의 값을 반환
}
  • : 위의 예제에서 _name은 private 변수로, 클래스 외부에서는 직접 접근할 수 없습니다. 대신, get name을 사용하여 _name의 값을 가져올 수 있습니다.

세터(Setter)란?

세터는 클래스의 속성의 값을 설정하는 메소드입니다. 이를 통해 외부에서 클래스의 데이터를 안전하게 변경할 수 있습니다.

세터의 문법

세터는 set 키워드를 사용하여 정의합니다. 위의 Person 클래스를 예로 들어 보겠습니다.

class Person {
  String _name; // private 변수

  Person(this._name); // 생성자

  // 게터
  String get name => _name; // _name의 값을 반환

  // 세터
  set name(String newName) {
    _name = newName; // _name의 값을 새 값으로 설정
  }
}
  • 설명: set name을 사용하여 _name의 값을 변경할 수 있습니다. 예를 들어, person.name = 'Alice';와 같이 사용하여 _name을 변경할 수 있습니다.

게터와 세터 사용 예제

이제 게터와 세터를 사용하는 예제를 만들어 보겠습니다.

void main() {
  var person = Person('Bob'); // Person 객체 생성
  print(person.name); // 출력: Bob

  // 세터를 사용하여 이름 변경
  person.name = 'Alice';
  print(person.name); // 출력: Alice
}
  • 설명: 여기서는 Person 객체를 생성하고, 처음에 'Bob'이라는 이름을 출력합니다. 그 후, 세터를 사용하여 이름을 'Alice'로 변경하고, 다시 출력합니다.

왜 게터와 세터를 사용할까?

  1. 데이터 보호: private 변수를 사용하여 클래스의 속성을 보호하고, 외부에서 직접 접근하지 못하도록 합니다.
  2. 데이터 유효성 검사: 세터를 사용하여 값을 설정할 때, 특정 조건을 추가하여 유효성을 검사할 수 있습니다.
  3. 캡슐화: 클래스의 내부 구현을 숨기고, 필요한 부분만 외부에 노출하여 코드의 가독성과 유지보수성을 높입니다.

Dart의 게터와 세터는 객체 지향 프로그래밍에서 매우 중요한 개념으로, 데이터의 안전한 접근과 변경을 가능하게 합니다.

이를 통해 코드의 품질을 높이고, 유지보수를 쉽게 할 수 있습니다. 여러분도 게터와 세터를 활용하여 더 나은 코드를 작성해보세요!

공감과 댓글은 저에게 큰 힘이 됩니다.

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

 

 

728x90
반응형