Getter & Setter

meonji·2021년 12월 21일
1

나는 웹페이지를 만들면서 Getter, Setter 이 왜 필요한지 몰랐다. 뭔가 인수들이 왔다 갔다 하는 걸 보면 정보를 주고받는 역할인가? 라며 생각하곤 했다.
그래서 Getter와 Setter가 왜 필요한지 깊게 알아보려고 한다.

Getter & Setter이 필요한 이유


오른쪽을 보면 변수를 선언하는 Book Class가 있고, 왼쪽에는 BookList가 Book의 변수를 가지고 책의 번호, 제목, 내용, 작가를 출력하려고 한다.

근데 개발자 B가 title을 name으로 바꾸고 싶어서 바꿨다고 가정해보면, BookList Class에서 book1.title이 오류 나는 것을 알 수 있다. 바로(직접적) 접근했기 때문이다. 그럼 어떻게 해결할까?


여기서 캡슐화가 등장한다.

위의 방식은 직접적으로 접근하는 방식이고, 아래의 방식은 간접적인 접근이다. BookList가 직접적으로 접근하면 오류(캡슐화가 깨짐)가 발생할 수 있으니, Book에게 "네가 데이터에 접근할 수 있는 함수를 만들어줘!" 하는 것이다.

Getter 만드는 방식

getter : 다른 클래스에서 변숫값을 받음

Setter 만드는 방식

setter : 다른 클래스의 변숫값을 설정
이번에는 pk, title, content, author를 다른 값으로 저장하고 싶을 때, 직접적인 접근으로는 이렇게 한다.

이것을 간접적인 접근으로는 set_(전달 받을 값)
BookList.class

Book.class

Getter & Setter 쉽게 만드는 방법

eclipse
Source -> Generate Getters and Setters

IntelliJ
Getter & Setter 원하는 변수에 alt + Insert


요약
Getter & Setter 필요한 이유 : 캡슐화 간접적 접근을 하기 위함
Getter 만드는 방식 : public 자료형 get_() { return _; }
Setter 만드는 방식 : public void set_(자료형 *) { this.* = * }

profile
이게 뭔지 먼지의 개발과정

0개의 댓글