0Pricing
Dart Academy · 강의

게터와 세터

계산된 속성과 보호된 속성을 외부에 제공합니다

게터와 세터은(는) CoddyKit의 무료 Dart Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Dart Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Dart Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

단순한 필드를 넘어서

때로는 계산되거나 접근이 제어되는 속성이 필요합니다. Dart는 값을 읽고 쓰는 방식을 제어할 수 있도록 게터와 세터를 제공합니다.

게터란 무엇인가요

게터는 외부에서 필드처럼 보이지만 코드를 실행해 값을 만들어 냅니다. get 키워드로 정의합니다.

int get area => width * height;

게터는 값을 계산합니다

게터는 다른 필드에서 파생되는 값을 표현하는 데 적합합니다. 괄호 없이 일반적인 점 표기법으로 읽습니다.

class Box {
  int w = 2, h = 3;
  int get area => w * h;
}

게터 호출하기

게터에 필드와 똑같이 접근하세요. 내부 코드가 접근할 때마다 실행되므로 항상 최신 데이터를 반영합니다.

var b = Box();
print(b.area); // 6

세터란 무엇인가요

세터는 값을 할당할 때 코드를 실행합니다. set 키워드와 입력을 받을 하나의 매개변수로 정의합니다.

set width(int value) {
  _w = value;
}

세터로 입력 제어하기

세터는 저장하기 전에 값을 검증할 수 있습니다. 잘못된 데이터를 거부하거나 범위를 제한하거나 할당 과정에서 변경 사항을 기록할 수 있습니다.

set age(int v) {
  if (v >= 0) _age = v;
}

비공개 지원 필드

밑줄로 시작하는 이름은 해당 라이브러리에서만 비공개입니다. 세터는 _age와 같은 비공개 지원 필드를 제어하는 경우가 많습니다.

int _age = 0;
int get age => _age;

세터 호출하기

등호를 사용해 필드와 같은 방식으로 세터에 값을 할당합니다. Dart는 해당 할당을 값을 제어하는 코드로 전달합니다.

var p = Person();
p.age = 25;

세터 없는 게터

게터만 정의하면 읽기 전용 속성을 만들 수 있습니다. 외부 코드에서 읽을 수는 있지만 값을 할당할 수는 없습니다.

String get fullName => "$first $last";

게터와 세터를 사용하는 이유

게터와 세터를 사용하면 호출하는 코드를 깨뜨리지 않고 나중에 내부 저장 방식을 바꿀 수 있습니다. 공개 속성은 그대로 유지되고 로직은 그 뒤에 숨습니다. 🔐

계산 프로퍼티 예시

게터는 형식 지정에 유용합니다. 여러 필드를 호출자가 일반 프로퍼티처럼 읽을 수 있는 친숙한 문자열로 결합해 보십시오.

String get label => "$name: $score pts";

빠른 확인

다른 코드는 읽을 수 있지만 절대 할당할 수 없는 프로퍼티를 만들고 싶습니다. 무엇을 정의해야 할까요?

복습: 게터와 세터

게터는 값을 계산하고 노출하며, 세터는 할당을 검사하고, 둘을 함께 사용하면 내부 세부 사항을 깔끔하게 숨길 수 있다는 것을 배웠습니다. 🎉

자주 묻는 질문

“게터와 세터” 강의는 무료인가요?

네 — “게터와 세터” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Dart Academy 강의 전체를 잠금 해제할 수 있습니다. Dart Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“게터와 세터”에서 뭘 배우나요?

계산된 속성과 보호된 속성을 외부에 제공합니다 브라우저에서 직접 실행하는 실습 코드로 Dart Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Dart Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Dart Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“게터와 세터” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Dart Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Dart Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 필드가 있는 클래스 정의하기
  2. 인스턴스 메서드와 this
  3. 게터와 세터
  4. 정적 멤버와 클래스 상수
← Dart Academy(으)로 돌아가기