Languages/Java
은닉화와 getter/setter 사용 이유
자. 클래스에는 멤버 변수가 있지. 근데 멤버 변수를 수정하거나 그 데이터를 가져올 때, 객체.name 이렇게 접근하지 않고 public getter(){} 혹은 public setter(){} 함수를 만들어서 가져오게 돼. 근데 굳이 왜 그러는걸까? 생각해보자. 만약에 멤버 변수에 직접 접근해서 값을 바꿀 수 있게 된다면, 휴먼 에러가 발생할 확률이 있어. 예를 들어서, 객체.name에는 반드시 string인 이름만 들어가야 하는데, decimal인 숫자를 집어넣는다든지 객체.age에는 자연수만 들어가야 하는데 음수가 들어간다든지, 이런걸 걸러낼 수가 없는거야. 그래서 setter 함수에서 if (age>0) : pass else : fail 이렇게 예외 처리를 하는거지. 그러면 멤버 변수에 바로 접근..
2022. 6. 10. 12:51
최근댓글