하루하루1
202
2020-05-26 17:24:57
4
274

객체의 무결성이 무엇인가요?


Getter와 Setter를 사용하는 이유가 객체의 무결성을 보장하기 위함 이라고 하는데,

객체의 무결성 이라는게 무엇인가요?

0
  • 답변 4

  • 어쩌다프로그래머
    6k
    2020-05-26 17:43:45 작성 2020-05-26 17:48:03 수정됨

    뭐 말이 거창한거지 별거  없어요..

    만약 해당 필드 값이 1이면 안된다고 가정할떄


    private int a ;


    public void setA( int a)

    {

      if( a == 1) this.a = 0;

     else this.a = a;

    }


    a 값이 절대 1일수는 없겠죠..

    활용성을 무궁무진한대 간단히 설명하고자 함이고..

    private int a ; 가아니고

    public int a ; 로 바로 접근해서 값을 주면 불가능한 로직이죠


    다른접근법으로  setter 를 사용하지 않고 getter 만 사용함으로서 수정도 못하게 할수있고..

    여러가지가 있겟죠

  • 우드로이드
    371
    2020-05-26 17:47:42

    데이터의 정확성 입니다

    getter, setter 를 사용하는 이유는 내부에서 데이터 정확성을 위해 한번더 가공하기 위함이져


    예를들어 사람의 키가 음수일 순 없져

    근데. height 변수가 public 이라면, 어디선가에서 


    height = -100 처럼 음수로 넣을 가능성이 있습니다.


    하지만, setter 로 설정한다면

    person.setHeight(-100) 

    을 한다고 하더라도. 

    setter 내부에서 음수값이 들어오지 못하도록 막을수있져

  • lnomadism
    1k
    2020-05-26 18:32:12

    무결성, 말그대로 결함이 없어야된다는 말입니다.

    객체가 프로그램 도중 의도치않게 수정이나 변경이 될 가능성이 있기때문에 프로그램상에서 객체를 함부로 접근하지 못하게끔 만들어놓고 필요한 경우에만 객체를 컨트롤할수잇도록 해야한다는것입니다. 

  • 마르세유1
    1k
    2020-05-26 19:53:41

    누군가 실수로 변수에 -1 값을 대입하는 코드를 심었습니다...

    하지만 setter에 음수인경우는 세팅하지마! 라고 해두면?!

    짜잔



  • 로그인을 하시면 답변 을 등록할 수 있습니다.