캡슐화는 세 가지 주요 기능 중 하나입니다.객체 지향 프로그래밍 (OOP)의 기능 다른 두 가지는 다형성과 상속입니다. 이들은 함께이 세 가지 원칙을 사용하여 서로 다른 언어로 프로그램을 작성하는 모든 가능성을 결정하는 PLO의 기반을 형성합니다. 객체 지향 언어는이를 따라야합니다.
객체 지향 프로그래밍은 우주의 세 가지 축을 의미합니다.
캡슐화 (프로그래밍)액세스 수정자를 사용하여 최종 사용자로부터 프로그램 코드의 일부를 숨 깁니다. 그것의 밑에, 차례 차례로, 개발자 또는 상속 개체를 의미합니다.
정의는 캡슐화에서 정의합니다.그것은 프로그램 코드 전부 또는 일부의 숨김을 의미합니다. "캡슐화"개념의 본질은 액세스 수정 자의 조작입니다. 즉, 개발자 자신이 클라이언트 클래스에 열려있는 속성, 메서드 및 클래스와 숨겨진 클래스를 결정합니다.
C # ( "C Sharp")에는 지정된 (후자 제외) 외에 다음과 같은 수정자가 여전히 있습니다.
캡슐화 메커니즘을 사용하면 프로그램 코드에 대한 외부 영향 및 프로그램 코드에 포함 된 데이터의 잘못된 사용을 제외 할 수 있습니다. 이는 코드와 데이터를 하나로 결합하여 수행됩니다.
통합 소프트웨어 모듈의 구현프로그래밍에서 코드에 포함 된 데이터를 객체라고합니다. 캡슐화와의 연결의 본질은 문제의 메커니즘의 무결성을 유지하고 보장 할 수있는이 기술이라는 사실에 있습니다.
캡슐화는 인코딩 프로세스를 단순화하는 방법입니다. 수많은 코드 라인이 "배후에"남아 있으며, 주요 클래스 작업에는 객체의 인스턴스가 포함됩니다.
캡슐화는 또한데이터 보호에 대한 아이디어를 실현합니다. 객체 지향 프로그래밍의 프로그램 논리는 대부분의 데이터가 개인 (개인, 사설) 또는 보호 된 (보호 된) 액세스 한정자에 의해 숨겨진다는 사실을 기반으로합니다. 외부 세계 인 클라이언트는 실수로 또는 의도적으로 소프트웨어 모듈의 구현을 손상시킬 수 없습니다. 실제로 의도적으로 이것을하는 것은 매우 쉽기 때문에 캡슐화는 매우 좋은 원칙입니다.
Class는 캡슐화의 기본 단위로서,데이터를 설명하고 이러한 데이터로 작동 할 수있는 코드를 포함합니다. 또한 객체를 구성하기위한 기초이기도합니다. 후자는 차례로 클래스의 인스턴스로 표현됩니다.
캡슐화 (프로그래밍) 예 :
* 참고 :
description은 메소드 / 속성 / 변수에 대한 설명입니다. 즉 프로그램에서 실제로 발생하는 것을 설명합니다. 태그 열기 / 닫기로 시연
시스템 사용;
네임 스페이스 OOPLibrary.Auto
{
///
///이 클래스는 자동차의 속성과 동작을 설명하기위한 클래스입니다.
///
public class Auto
{
///
///이 속성에 대한 외부 간섭은 개발자가 불필요하다고 생각하기 때문에 쓰기 위해 만들어진 변수, 자동차의 나이는 몇 살입니까?
/// 수정 자 private, 즉 비공개 개인 액세스로 표시됩니다 (위의 설명 참조).
///
개인 int _age;
///
/// 자동차가 현재 움직이고 있는지 여부를 나타내는 부울 변수 (두 가지 가능한 값 - 예 또는 아니오)
/// 그것은 최종 사용자가 누구이든간에 열려서는 안됩니다. 따라서이 변수에는 개인 액세스 수정 자 "privat"가 할당됩니다.
///
개인 bool _isMoving;
///
///이 문자열 변수는 자동차의 색상에 대한 정보를 포함해야합니다. 외부 영향으로 인해 변경 될 수 있습니다.
/// public 액세스 수정 자 "public"이 색상으로 선택 되었기 때문에 ///.
///
공용 문자열 Color;
///
///이 특별한 경우에, 우리는 자동차의 이름이 또한 바뀔
/// 공개 수정 자 (클래스 또는 어셈블리와 관계없이 모든 사용자를위한 공용 액세스)를 할당합니다.
///
public string Name;
///
/// 클래스 생성자가 열리고 변수로 표현되고 이전에 지정된 모든 속성은 값을 가져옵니다.
///
공개 자동 ()
{
_age = 5;
_isMoving = false;
색상 = "보라색";
Name = "Skoda Octavia";
}
///
///이 메서드는 auto 나이의 반환 값을 구현합니다. 필요한 이유는 무엇입니까?
/// 개인 액세스 수정자는 클라이언트가 변경할 수 없도록합니다.
///
/// 자동차의 나이를 반환합니다.
공용 문자열 GetAge ()
{
return "현재 선택한 컴퓨터는"+ _age + "세입니다.";
}
///
/// 자동차가 움직이지 않으면이 방법운동의 시작을 알게된다. 자동차 상태 (주행 여부)를 나타내는 변수가 확인되고 결과에 따라 해당 조치가 수행되며 해당 메시지가 표시됩니다.
///
공공 무효 Start ()
{
if (_isMoving)
{
Console.WriteLine ( "동작이 이미 시작되었습니다");
}
else
{
_isMoving = true;
Console.WriteLine ( "시작하려면주의 .. 앞으로 ... 가자!");
}
}
///
/// 이동이 시작된 경우이 메서드는 중지합니다. 앞의 경우와 동일한 프로그래밍 논리.
///
public void Stop ()
{
if (_isMoving)
{
_isMoving = false;
Console.WriteLine ( "Stop, machine");
}
else
{
Console.WriteLine ( "오류 : 자동차가 이미 있습니다. 움직이지 않습니다");
}
}
///
/// 차량 이동이 있으면 왼쪽으로 돌립니다.
///
공용 무효 MoveLeft ()
{
if (_isMoving)
{
Console.WriteLine ( "왼쪽으로 돌아갔다");
}
else
{
Console.WriteLine ( "오류 : 자동차가 고정되어 있으며 현재 회전 기능을 사용할 수 없습니다.");
}
}
///
/// 비슷한 방법으로 오른쪽으로 회전
///
public void MoveRight ()
{
if (_isMoving)
{
Console.WriteLine ( "우회전 성공");
}
else
{
Console.WriteLine ( "오류 : 자동차가 아직 이동하지 않았습니다."오른쪽으로 돌리는 것은 현재 불가능한 작업입니다. ");
}
}
}
}
</ p>