///////
Search
🏤

접근제한자, 정보은닉

박수진_0923

접근제한자( Access Modifier)에 대한 이해
public > protected > default > private
클래스 정의 대상: public, default
인스턴스 변수와 메소드 대상: public, protected, default, private
클래스 정의 대상의 public과 default 선언이 갖는 의미
인스턴스 변수와 메서드 대상의 접근제한자 의미

김준호_0923

정보은닉의 필요성

데이터를 직접적으로 입력하는 상황이 발생하면 안된다.
강사님 曰 : 프로그램이 끝장납니다.
class CircleR10 { double rad = 10; final double PI = 3.14; public static void main(String args[]) { CircleR10 c = new CircleR10(); c.rad = 12.5; } }
Java
복사
A 개발자의 의도 : 변하지 않는 반지름 10. 수정해서는 안된다.
B 개발자 : A 개발자의 의도를 모르고 반지름을 수정한다
위와 같은 상황이 발생할 수 있다.
class CircleR10 { private double rad = 10; ... }
Java
복사
이 때, 접근 제어자 private을 사용하여 접근을 제한하면
main에서 직접적으로 숫자를 입력하려 할 때 에러를 발생하여 입력을 방지한다.
클래스를 제작한 개발자가 수정의 가능성을 남겼다면 내부에 제공하는 함수(Setter)를 통해 접근하여 값을 수정할 수 있다.

private을 사용하는 이유 (객체지향의 사실과 오해 발췌)