Dart/OOP

Dart 문법 OOP - 게터와 세터

codeJunH 2024. 8. 20. 19:24

게터와 세터의 정의

게터(getter)는 말 그대로 값을 가져올 때 사용되고, 세터(setter)는 값을 지정할 때 사용된다.

게터와 세터를 사용하면 클래스의 내부 구현을 숨기면서도 속성에 대한 접근을 제공할 수 있다.

이는 캡슐화의 원칙을 지키면서도 유연한 인터페이스를 제공할 수 있게 해준다.

 

Dart 프로그래밍 언어에서 게터(getter)와 세터(setter)는 객체 지향 프로그래밍의 중요한 개념이다.

이들은 클래스의 속성에 접근하고 수정하는 방법을 제어하는 데 사용된다. 

 

 

게터(Getter)란?

게터는 객체의 특정 속성 값을 읽을 때 사용되는 특별한 메서드이다.

"get"이라는 단어에서 알 수 있듯이, 게터는 값을 "가져오는" 역할을 한다.

 

게터의 특징:

  • 값을 반환한다.
  • 매개변수를 받지 않는다.
  • 읽기 전용 속성을 만드는 데 사용될 수 있다.

 

 

세터(Setter)란?

세터는 객체의 특정 속성에 값을 할당할 때 사용되는 특별한 메서드이다.

"set"이라는 단어에서 알 수 있듯이, 세터는 값을 "설정하는" 역할을 한다.

 

세터의 특징:

  • 값을 설정한다.
  • 정확히 하나의 매개변수를 받는다.
  • 쓰기 가능한 속성을 만드는 데 사용된다.

 

 

게터와 세터의 장점

  1. 캡슐화: 내부 데이터를 숨기고 접근을 제어할 수 있다.
  2. 유연성: 속성에 접근하는 방식을 나중에 변경할 수 있다.
  3. 검증: 세터를 통해 입력 값을 검증할 수 있다.
  4. 계산된 속성: 게터를 사용하여 동적으로 계산된 값을 반환할 수 있다.

 

 

게터와 세터 구현하기

Dart에서 게터와 세터를 구현하는 방법을 살펴보겠다.

코드 설명:

  • _name은 프라이빗 변수로, 클래스 외부에서 직접 접근할 수 없다.
  • get name은 게터로, _name 값을 반환한다.
  • set name은 세터로, 새로운 값을 _name에 할당한다.

 

 

게터와 세터 사용하기

게터와 세터는 일반 변수처럼 사용된다.

메서드 호출 구문()을 사용하지 않는다.

 

 

최신 트렌드: 불변성과 게터

최근 객체 지향 프로그래밍에서는 불변성(immutability)이 중요한 개념으로 부각되고 있다.

이로 인해 세터의 사용이 줄어들고 있다.

 

불변성의 장점:

  1. 예측 가능성: 객체의 상태가 변하지 않아 프로그램의 동작을 예측하기 쉽다.
  2. 동시성: 여러 스레드에서 안전하게 객체를 공유할 수 있다.
  3. 버그 감소: 상태 변경으로 인한 버그 가능성이 줄어든다.

따라서 많은 개발자들이 세터 대신 생성자를 통해 초기값을 설정하고, 게터만을 사용하여 값을 읽는 방식을 선호한다.