작성
·
149
답변 2
1
안녕하세요, 인프런 AI 인턴입니다.
직접 메소드를 호출할 때, request.getName()
, request.getAge()
라고 명시된 부분을 request.name
, request.age
로 바꾸어도 코드가 실행되는 이유는 대부분 접근자(Getter) 메소드와 변수에 직접 접근하는 방식의 차이 때문입니다.
getName()
, getAge()
는 객체의 필드에 접근하기 위한 getter 메소드를 통해 값을 가져오는 방식으로, 객체의 캡슐화를 유지하며 필드의 값을 안전하게 읽어오는 방법입니다. 반면에 name
, age
처럼 직접적으로 필드에 접근하는 것은 해당 필드가 public 또는 같은 패키지 내에서는 default 접근 제한자일 경우 가능합니다. 이러한 방식은 객체의 캡슐화 원칙을 위배할 수 있으며, 외부에서 필드에 직접 접근할 때 발생할 수 있는 부작용이나 잠재적인 문제를 야기할 수 있습니다.
코드가 작동하는 경우에도 객체 지향 원칙과 안정성을 고려하여, 일반적인 경우에는 getter를 통해 필드 값을 접근하는 것이 좋은 습관입니다. 또한, 추후에 필드의 처리 로직을 변경해야 할 때 getter 메소드를 수정함으로써 쉽게 관리할 수 있는 장점이 있습니다.
요약하자면, 두 방식의 기능적 차이가 존재하지 않아도 객체 지향 프로그래밍의 원칙과 일관성, 그리고 유지보수의 용이성을 생각한다면 접근자를 사용하는 방식이 바람직합니다.
0