Getter와 Setter

문세연·2024년 9월 9일

JAVA

목록 보기
10/19

객체의 필드를 외부에서 맘대로 읽고 변경할 경우 객체의 무결성이 깨지기 가능. 특성이 맘대로 바뀌는게 말이 안되기 때문. 특성은 무조건 고정적이어야 혼돈이 안 온다.

객체 지향 프로그래밍에서는 직접적인 외부의 필드 접근 방지, 대신 메소드를 통해 필드에 접근하는 것을 허용. 메소드는 데이터를 검정하여 유효값만 필드에 저장할 수 있기 때문임.

이런 역할을 하는 메소드가 Setter
: 예를 들어, 붕어빵 필드가 private 접근 제한자를 가진다면 외부에서 접근 안 됨. 변경하기 위해서는 Setter인 setboonga() 메소드를 사용하고, 외부에서 제공된 변경값(매개값)을 if문으로 검증하고, 음수일 경우 0을 필드값으로 저장함.

어렵게 생각할 필요 없고, 외부에서 넘어온 매개값이 특정 조건에 통과되는지를 검사하여 통과할 경우 필드값에 저장.

외부에서 객체의 필드를 읽을 때에도 메소드가 필요한 경우가 있음. 필드값이 객체 외부에서 사용하기에 부적절한 경우에 메소드로 적절한 값으로 변환해서 리턴하기가 가능.

이런 역할을 하는게 = Getter

붕어빵 필드는 프라이빗 접근 제한을 가지고 있기 떄문에 외부에서 읽지 못함. 붕어빵 필드를 읽기 위해서는 게터인 겟붕어빵 메소드를 사용해야 한다. 붕어빵 필드의 붕어라는 개념값을 붕어반죽이라는 개념으로 변환햇거 외부로 리턴한다. (수정이 가능)

필드 = 특성
메소드 = 필드값을 참조하여 사용하는 기능.

쉽게 말해서, 일단 필드는 객체의 고유한 특성이기 때문에 외부에서 변경하지 못하도록 막는다. 하지만, 게터 세터를 사용하면 외부에서 자유롭게 참조를 하여 불러오기도 가능하고, 새롭게 설정하여 다른 객체에서 재사용할 수도 있다.

게터 = 외부에서 객체의 데이터를 읽어서 가져오는 것 : 필드값을 반환을 해야 하기 때문에 리턴값이 존재. -> 어디로 반환하나?

세터 : 외부에서 메소드를 통해 필드에 접근해서 필요한 값으로 값을 바꿀 수 있는 메소드로 필드값을 설정해야 하니까 매개변수가 필요함.

링크텍스트

매개변수 = 파라미터, 인자

profile
안녕하세용!

0개의 댓글