티스토리 뷰
getter,setter를 사용하는 이유와 객체의 부품화
[출처] https://kimfk567.tistory.com/14
일단 getter,setter를 사용하는 이유는 클래스의 필드에 직접 접근하는걸 막기 위해서다.
객체지향은 '부품화'의 정점이다. 메소드는 부품화의 예라고 할 수 있겠다. 연관된 로직들을 결합해서 메소드라는 완제품의 파츠들을 만들고, 이 메소드들을 부품으로 하나의 완제품인 독립된 객체를 만드는
것이다. 부품화는 독립된 객체들을 모아 만드는 것만은 아니다. 제대로 된 부품이라면 어떻게 만들어졌는지 모르는
사람도 그 부품을 사용하는 방법만 알면 쓸 수 있어야한다. 다시 자동차를 예로들어 배터리가 어떻게 만들어졌고
어떤 원리인지 몰라도 배터리가 나가서 시동이 안걸리면 배터리를 사서 -+를 연결해서 교체하고, 좀 더 원리를 알고
점프선을 연결해서 시동을 걸 수 도 있다. 즉, 내부의 동작 방법을 안으로 숨기고 사용자에겐 그 부품의 사용법만을
노출하고 있는 것이다.
따라서 객체의 데이터는 함부로 공개하지 않는다.
그래서 사용하는것이 getter와 setter이다. getter setter는 객체의 데이터에 직접 접근하지 않고 메소드를 통해 데이터에 접근,변경한다.
setter
외부에서 메소드를 통해 데이터에 접근하면, 메소드는 매개값을 검증해서 유효한 값만 데이터로 저장할 수 있다.
getter
데이터 복사본을 던져주기 때문에 원래 객체의 데이터를 손상시키지 않는다. 따라서 원본 데이터는 안전하다. 간단하게 생성자를 통해서만 데이터를 넣어줄 수 있고 getter 메소드만 있다면( 물론 인스턴스 변수가 기본 자료형이나
String인 경우) 외부에서는 객체의 원본 데이터를 변경할 수 없게 된다.
'5. 파이썬' 카테고리의 다른 글
파이썬/프로젝트/2022-08-/ 발표자료 By 멜버른(클로젯) (0) | 2022.09.01 |
---|---|
파이썬/패스트/2022-08-30/ 도커에 MYSQL 도커컴포즈 파일 설정하기 (0) | 2022.08.30 |
파이썬/패스트/2022-08-30/ uvicorn 용어가 -- 인식되지 않습니다. 해결법. (0) | 2022.08.30 |
파이썬 딥러닝 화장품 립스틱 (0) | 2022.08.16 |
파이썬/패스트/2022-08-16/ 멜버른(김아름) 프론트-서버 연결 확인용 코드 (0) | 2022.08.16 |
- Total
- Today
- Yesterday
- jQuery
- mariadb
- Mongo
- SpringBoot
- AWS
- React
- Algorithm
- Mlearn
- ERD
- springMVC
- terms
- Java
- database
- JUnit
- nodejs
- JPA
- Eclipse
- Oracle
- FLASK
- SQLAlchemy
- intellij
- Django
- KAFKA
- maven
- Python
- vscode
- COLAB
- Git
- tensorflow
- docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |