
객체 지향 프로그래밍에서 오브젝트는 사원, 차량 또는 항공편 연결과 같은 실제 오브젝트에 해당합니다. 여기에는 이를 설명하는 특성이 있으며, 항공편 연결의 경우 항공사 ID와 항공편 번호가 있습니다.
이제 이 오브젝트를 사용하는 프로그램에서 이러한 특성에 대한 값을 제공하려고 할 때 어떤 일이 발생하는지 살펴보겠습니다. 실제 세계의 항공편 연결에 해당하는 항공사 ID와 항공편 번호의 조합만 허용되어야 한다는 것은 분명합니다.
오브젝트 방향에서 클라이언트 프로그램은 특성 값을 직접 변경할 수 없어야 합니다. 대신 이 태스크를 수행하기 위해 메소드를 호출해야 합니다. 그런 다음 오브젝트와 함께 제공되는 메소드를 통해 항공사 ID와 항공편 번호의 조합이 유효한지 확인하고 그렇지 않은 경우 변경을 거부할 수 있습니다.
lcl_connection 클래스의 개발자로서, carrier_id 및 connection_id 전용 또는 최소한 읽기 전용 특성을 만들어 set_attributes( ) 메소드를 사용할 수 있습니다.
이 개념을 데이터 캡슐화라고 합니다. 항공편 연결에 대한 정보는 연결 오브젝트 자체에서 관리되며 다른 사람이 조작할 수 없습니다. 이렇게 하면 고의로 또는 모르게 일관성 점검을 바이패스할 수 없습니다. 이는 객체 지향의 주요 장점 중 하나입니다.
오브젝트 지향 프로그래밍에서는 최대한 데이터 캡슐화를 사용하는 것이 좋습니다!
이제 에서 정의한 공용 특성을 사용하여 클래스 내부 및 외부의 어디에서나 특성 값을 읽고 변경할 수 있었습니다.
특성에 대한 액세스를 제한하기 위해 다음 두 가지 옵션을 사용할 수 있습니다.
- DATA 문 또는 CLASS-DATA 문을 공용 섹션에 유지하고 추가 요소 READ-ONLY를 추가합니다. 이렇게 하면 클래스 외부에서 특성에 대한 쓰기 액세스가 금지되지만 읽기 액세스는 여전히 가능합니다.
노트
추가 요소 READ-ONLY는 클래스의 public 섹션에서만 허용됩니다. - DATA 문 또는 CLASS-DATA 문을 공용 섹션에서 다른 가시성 섹션(예: private 섹션) 중 하나로 이동합니다. 이렇게 하면 클래스 외부에서 특성에 대한 읽기 액세스 및 쓰기 액세스가 금지됩니다.
힌트
ADT는 특성 표시 여부를 변경하기 위한 Quick Fix를 제공합니다. 이를 사용하려면 특성 이름에 커서를 놓고 Ctrl + 1 을 누른 다음 Make <attribute> private 을 선택합니다.





