상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 다트에서 getter와 setter를 사용하는 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
<a href='https://sangseek.com/sangseeks/다트/ko'>다트</a>(Dart)에서 getter와 setter는 <a href='https://sangseek.com/sangseeks/객체 지향/ko'>객체 지향</a> 프로그래밍에서 속성에 대한 접근을 제어하는 데 사용되는 중요한 개념입니다. 이들은 클래스의 필드에 대한 읽기 및 쓰기 접근을 제공하며, 데이터 캡슐화(encapsulation)를 통해 객체의 상태를 안전하게 관리할 수 있도록 도와줍니다. Getter와 Setter의 기본 개념 - Getter : 객체의 속성 값을 읽기 위한 메서드입니다. 일반적으로 속성의 값을 반환합니다. - Setter : 객체의 속성 값을 설정하기 위한 메서드입니다. 일반적으로 매개변수로 전달된 값을 사용하여 속성의 값을 변경합니다. <a href='https://sangseek.com/sangseeks/기본 문법/ko'>기본 문법</a> 다트에서 getter와 setter를 정의하는 방법은 다음과 같습니다: ```dart class Person { String _name; // private field // Getter String get name => _name; // Setter set name(String newName) { if (newName.isNotEmpty) { _name = newName; } else { print('Name cannot be empty'); } } Person(this._name); } ``` 위의 예제에서 `Person` 클래스는 `_name`이라는 private 필드를 가지고 있습니다. `_name` 필드는 외부에서 직접 접근할 수 없으며, 대신 getter와 setter를 통해 접근할 수 있습니다. Getter 사용 예 getter를 사용하여 `_name` 필드의 값을 읽을 수 있습니다: ```dart void main() { var person = Person('Alice'); print(person.name); // Alice } ``` Setter 사용 예 setter를 사용하여 `_name` 필드의 값을 설정할 수 있습니다: ```dart void main() { var person = Person('Alice'); person.name = 'Bob'; // Bob으로 이름 변경 print(person.name); // Bob person.name = ''; // 빈 문자열을 설정하려고 시도 // 출력: Name cannot be empty } ``` Getter와 Setter의 장점 1. 데이터 캡슐화 : 내부 상태를 보호하고, 외부에서 직접 접근하지 못하도록 하여 데이터의 무결성을 유지합니다. 2. 유효성 검사 : setter를 통해 값을 설정할 때 유효성 검사를 수행할 수 있습니다. 예를 들어, 이름이 비어 있지 않도록 확인할 수 있습니다. 3. 읽기 전용 속성 : getter만 정의하여 읽기 전용 속성을 만들 수 있습니다. 이는 외부에서 값을 변경할 수 없도록 하여 객체의 상태를 보호합니다. 예제: 복합적인 Getter와 Setter 다음은 복합적인 getter와 setter를 사용하는 예제입니다: ```dart class Rectangle { double _width; double _height; Rectangle(this._width, this._height); // Getter for area double get area => _width * _height; // Setter for width set width(double newWidth) { if (newWidth > 0) { _width = newWidth; } else { print('Width must be positive'); } } // Setter for height set height(double newHeight) { if (newHeight > 0) { _height = newHeight; } else { print('Height must be positive'); } } } ``` 이 예제에서 `Rectangle` 클래스는 면적을 계산하는 getter와 너비 및 높이를 설정하는 setter를 가지고 있습니다. 면적은 읽기 전용 속성으로, 외부에서 직접 설정할 수 없습니다. 결론 다트에서 getter와 setter는 객체의 속성에 대한 접근을 제어하고, 데이터의 무결성을 유지하는 데 중요한 역할을 합니다. 이를 통해 코드의 가독성을 높이고, 유지보수를 용이하게 할 수 있습니다. 객체 지향 프로그래밍의 원칙을 잘 따르면서, 안전하고 효율적인 코드를 작성하는 데 큰 도움이 됩니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기