[JAVA] Getter, Setter를 사용하는 이유

[JAVA] Getter, Setter를 사용하는 이유


  • 자바와 같은 객체 지향 프로그램에서는 데이터 자체는 외부에서 접근을 할 수 없도록 하고, 메소드만 공개해서 이 중 유효한 값들을 데이터로 저장함
    • 즉,  객체들이 데이터(필드)를 외부에서 직접적으로 접근하는 것을 막아놓음
  • 필드들은 private 접근 제한자로 막아두고, 각 필드의 Getter, Setter로 접근하는 방식을 취함
    • Getter, Setter는 클래스의 특성중 정보 은닉(Hiding information)을 잘보여줌
  • 이렇게 프로그래밍을 하는 이유는 객체의 무결성을 보장하기 위함

  • 예를들어 Man이라는 클래스에 weight(몸무게)라는 필드가 존재할 때, weight는 0보다 작을 수없으나,
    외부에서 직접적으로 접근할 경우, weight에 -100이라는 값을 줌으로써 객체의 무결성이 깨지는 일이 발생
  • 또한, 객체가 가지고 있는 로직을 무시하게 만들수도 있음
  • 이를 방지하기 위해서, 필드는 private로 만들어 외부의 접근을 제한한 후, Setter를 사용해 전달받은 값을 내부에서 가공해 필드에 넣어주는 방식을 사용함
  • 마찬가지로 필드 값을 가져올때도, Getter를 사용해 본 필드의 값을 숨긴 채 내부에서 가공된 값을 사용할 수 있음







출처



댓글

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?