추천, 2024

에디터의 선택

데이터 은닉과 캡슐화의 차이점

데이터 숨기기와 캡슐화는 모두 객체 지향 프로그래밍의 중요한 개념입니다. 캡슐화 는 클래스 내의 데이터 멤버 및 메서드의 구현을 래핑하는 것을 의미합니다. 클래스 내의 모든 데이터 멤버 및 메소드의 구현이 캡슐화되면 메서드 이름은 해당 클래스의 객체에서 수행 할 수있는 작업 만 설명 할 수 있습니다. 데이터 은닉 은 불법 또는 무단 액세스로부터 클래스 멤버를 보호하는 것을 의미합니다. 데이터 숨기기와 캡슐화의 주된 차이점은 데이터 보안 및 캡슐화에 더 중점을 둔 데이터 숨기기가 시스템의 복잡성을 숨기는 데 더 많은 초점을 둡니다. 데이터 숨기기와 캡슐화 사이의 다른 몇 가지 차이점은 아래 비교 차트에 설명되어 있습니다.

비교 차트

비교 근거데이터 은닉캡슐화
기본복잡성과 함께 데이터 보안에 대한 데이터 숨김.캡슐화는 시스템의 복잡성을 숨기기 위해 데이터를 래핑하는 것에 대해 우려합니다.
초점데이터 숨기기는 캡슐 내부의 데이터 사용을 제한하거나 허용하는 데 중점을 둡니다.캡슐화는 복잡한 데이터를 감싸거나 감싸는 데 중점을 둡니다.
액세스 지정자데이터 숨기기 아래의 데이터는 항상 비공개이며 액세스 할 수 없습니다.캡슐화 된 데이터는 개인 또는 공개 일 수 있습니다.
방법데이터 숨기기는 기술뿐만 아니라 프로세스입니다.캡슐화는 데이터 숨기기의 하위 프로세스입니다.

데이터 은닉의 정의

데이터 숨김은 클래스 구성원의 보안을 승인되지 않은 액세스로부터 확인하는 객체 지향 프로그래밍의 개념입니다. 데이터 숨기기는 다른 소스에서 조작되거나 해킹 당하지 않도록 데이터 멤버를 보호하는 기술입니다. 데이터는 프로그램에서 가장 민감하고 휘발성 인 내용으로 조작 된 경우 잘못된 결과가 발생할 수 있으며 데이터의 무결성에 해를 끼칩니다. 데이터 숨김은 액세스 수정 자 (개인, 공개 및 보호)의 도움으로 Java에서 제어됩니다. 공개 된 데이터는 수업 외부에서 액세스 할 수 있으므로 데이터를 숨기거나 외부에서 액세스하지 못하도록 제한하려면 데이터를 비공개로 선언하십시오. 개인 데이터는 해당 클래스의 개체에서만 액세스 할 수 있습니다.

예를 통해 데이터 숨기기에 대해 알아 보겠습니다. CheckAccount 클래스를 선언하고 그 클래스 내에 데이터 멤버 밸런스 를 가지고 있다고 가정합니다. 여기서 계정의 잔액은 민감한 정보입니다. 외부 응용 프로그램이 계정의 잔액을 확인할 수 있도록 허용 할 수 있지만 외부 응용 프로그램이 균형 특성을 변경하는 것을 허용하지 않습니다. 따라서 균형 특성을 개인으로 선언하면 외부 응용 프로그램의 균형에 대한 액세스가 제한됩니다.

데이터 숨김은 또한 시스템의 복잡성을 감소시킵니다. 캡슐화는 데이터 숨기기의 하위 프로세스이므로 데이터 숨기기는 캡슐화를 통해 수행 할 수 있습니다.

캡슐화의 정의

캡슐화는 클래스의 복잡성을 숨기기 위해 코드와 데이터를 캡슐에 함께 바인딩합니다. 캡슐화는 액세스 지정자 (개인, 공개 및 보호)와는 관련이 없습니다. 클래스 내의 캡슐화 멤버는 private, public 또는 protected 가 될 수 있습니다. 클래스의 전용 멤버는 해당 클래스의 개체에만 액세스 할 수 있으며 공용 멤버는 클래스의 개체에서 액세스 할 수있을뿐만 아니라 클래스 외부에서 액세스 할 수 있습니다. 캡슐화는 시스템의 최종 사용자가 시스템 에서 수행 해야하는 작업 대신 수행해야 할 작업 을 학습하는 데 도움이됩니다.

차의 예를 통해 캡슐화에 대해 이해합시다. 자동차의 운전자가 자동차의 기어를 바꾸고 싶다면 자동차의 간 작동 장치의 위치를 ​​변경하면 자동차의 기어가 변경됩니다. 운전자는 복잡성을 이해할 필요가 없으며 기어 변경의 메커니즘은 무엇입니까? 이것이 캡슐화가 시스템의 복잡성을 줄이는 방법입니다. 캡슐화는 시스템을 최종 사용자가보다 쉽게 ​​작동하도록합니다.

데이터 숨김과 캡슐화의 주요 차이점

  1. 캡슐화는 프로그램의 복잡성 을 숨기는 데 중점을 둡니다. 반면에 데이터 숨기기는 프로그램의 데이터 보안 을 다룹니다.
  2. 캡슐화는 복잡한 데이터를 랩핑 (캡슐화)하여 사용자에게보다 단순한보기를 제공하는 데 중점을 둡니다. 반면 데이터 숨기기는 데이터 보안을 위해 데이터 사용을 제한 하는 데 중점을 둡니다.
  3. 캡슐화 데이터는 공개 또는 비공개 일 수 있지만 데이터 은닉에서 데이터는 비공개 전용이어야합니다.
  4. 데이터 숨기기는 프로세스 뿐만 아니라 기술이지만 캡슐화는 데이터 숨기기의 하위 프로세스 입니다.

결론:

나는 데이터 숨기기와 캡슐화가 둘 다 시스템의 구현에서 중요하다고 말함으로써 결론을 맺는다. 데이터 숨기기가 데이터 보안에 중점을 두는 경우 엔 캡슐화가 응용 프로그램을보다 사용자 친화적으로 만들기 위해 시스템의 복잡성을 줄이는 데 중점을 둡니다.

Top