컴퓨터프로그래밍

캡슐화 -이 무엇입니까? 프로그래밍 캡슐화

캡슐화 -이의 세 가지 주요 기능 중 하나입니다 객체 지향 프로그래밍 (OOP). 다른 두 - 다형성과 상속. 이들은이 세 가지 원리를 사용하여, 다른 언어로 작성 프로그램의 다양한 기능을 낳는 PLO 프레임 워크를 구성합니다. 객체 지향 언어는, 차례로, 엄격하게 그들을 따라 할 의무가있다.

OOP의 기초

객체 지향 프로그래밍은 창조의 세 기둥에 :

  • 다형성, 특정 프로그래밍 언어가 유사한 방식으로, 서로 관계를 가진 객체를 다루는 방법에 대한 질문에 대답.
  • 상속, 답을주는 방법 재사용 가능한 코드의 사용의 자극이다.
  • 구현을 숨기고의 질문에 대한 대답입니다 캡슐화, 따라서 데이터 무결성을 발생합니다.

용어

캡슐화 (프로그래밍) - 최종 사용자의 코드 조각을 은폐하기 위해 액세스 한정자를 사용하는 것입니다. 그 아래에, 차례 차례로, 개발자 나 유산 사이트를 의미합니다.

"캡슐"의 개념의 본질

정의는 캡슐화에 의해 전부 또는 프로그램 코드의 일부를 숨기는 것을 의미 함을 지정합니다. "캡슐"의 개념의 본질은 액세스 한정자를 조작하는 것입니다. 숨겨진 - 이것은 개발자가 어떤 속성, 메서드를 결정할 수 있으며, 클래스는 클라이언트 클래스에게 공개됩니다, 어떤 것이 있다는 것을 의미한다.

액세스 수정

무엇보다도 manipulyarivat 캡슐화 (자바 프로그래밍) 할 수있는, 액세스 수식이 있습니다 :

  • 공공 ( "공공"- 공공, 오픈 액세스) - 주 현재 클래스와 객체 모두, 그리고 외부 세계에;
  • 개인 ( "prayvat"- 개인, 개인, 숨겨진 접속) -의 본질이 완전히 이전의 반대 액세스를 마감했다. 그것은 오직 현재의 클래스에 대한 액세스를 제공;
  • 보호는 ( "protekted"- 반 숨겨진 액세스 보호) - 현재의 클래스 및 그 유도체에 대한 액세스;
  • 기본 - 지정되지 않은 액세스 한정자 필드 / 메소드가 패키지에 현재의 모든 클래스를 볼 수 있다는 것을 의미한다.

C # 언어 ( "시 샤프")에서, (마지막 제외) 위뿐만 아니라, 아직 수정이 있습니다 :

  • 내부 ( "내부"- 내부 액세스) - 현재 어셈블리 접근성, 다른 모든 경우에 실내에 액세스;
  • 내부 보호 ( "내부 protekted"- 내부 보호 액세스) -이 수정의 조합 중 하나에있는 둘의 매니페스트 속성.

캡슐화의 역할

캡슐화 메커니즘은에 포함 된 데이터의 코드와 오용에 대한 외부의 부당한 압력이나 간섭을 제거합니다. 이것은 하나에 코드와 데이터를 결합함으로써 달성된다.

객체 및 캡슐화

소프트웨어 모듈 및 코드에 포함 된 데이터의 구현을 결합 프로그래밍 목적이라고한다. 캡슐화와의 연결의 본질은 이러한 방법은 유지기구의 작동의 무결성을 보장 할 수 있다는 것이다.

캡슐화의 장점

캡슐화 - 인코딩 프로세스를 단순화 할 수있는 방법. 코드의 많은 줄은 "무대 뒤에서"이며, 메인 클래스의 작업에 개체 인스턴스 것입니다.

데이터 보호의 개념

캡슐화 - 그것은 또한 데이터 보호의 아이디어를 실현하는 메커니즘입니다. 프로그램 로직 객체 지향 프로그래밍은 대부분의 데이터가 될 것입니다 무엇에 근거하여 구축 숨겨진 액세스 한정자 개인 (개인, 개인) 또는 보호 (보호). 외부 세계는, 고객 실수 또는 의도적으로 소프트웨어 모듈의 구현에 아무런 영향을 미치지 않습니다. 사실 그것도 목적에하지에 매우 쉽게 때문에, 캡슐화 -이 아주 좋은 원칙이다.

캡슐화 장치

클래스 데이터는 이러한 데이터를 조작 할 수있는 코드를 포함하는 캡슐화의 기본 단위로하고 설명한다. 그는 또한 개체의 건설을위한 기초이다. 후자는, 차례로, 인스턴스로 표시됩니다.

또한 다음과 같은 용어를 사용 :

  • 회원 -이 코드와 클래스에 포함 된 데이터는;
  • 필드 또는 인스턴스 변수 - 클래스를 정의하는 소위 데이터;
  • 멤버 함수 - 그들은 코드 자체가 포함되어 있습니다. 회원 기능 - 일반적인 이름. 특별한 경우 - 방법.

캡슐화 구체적인 예

캡슐화 (프로그래밍) 예 :

* 참고 :

설명 - 방법 / 부동산 / 변수의 설명은 실제로 프로그램에서 발생하는에 주석 즉. 그것은 개방 / 폐쇄 태그에 의해 설명된다

시스템을 사용하여;

네임 스페이스 OOPLibrary.Auto

{

///

///이 클래스는 차의 작업을 설명하기위한 것입니다

///

공용 클래스 자동차

{

///

/// 위해 만든 변수는 몇 년 자동차는 부동산 개발의 외부 간섭이 불필요 고려 이후에 쓰기

/// 개질제는 (상기 설명 참조.), 즉 폐쇄 전용 액세스 비공개로 표시된다.

///

개인 INT의 _age;

///

/// 부울 (오직 두 가지 값 - 예 또는 아니오), 차량의 순간 이동 여부 설명

/// 또한 최종 사용자에게 열려 있어야, 그는 누구했다. 따라서이 변수는 전용 액세스 개질제 "prayvat"을 할당

///

개인 부울 _isMoving;

///

///이 문자열 변수는 자동차의 색상에 대한 정보를 포함해야합니다. 그것은 외부 영향에 의해 변경 될 수 있습니다

/// 컬러 수정은 "공공"오픈 액세스를 선택하기위한 때문이다.

///

공공 문자열 색상;

///

///이 특정한 경우에, 우리는 자동차의 이름도 변경 될 수 있다고 가정

/// (무관 클래스 또는 조립체의 모든 오픈 액세스) 공공의 개질제를 할당.

///

공공 문자열 이름;

///

/// 클래스 생성자 및 표현 변수의 모든 속성을 열고 자신의 값을 가져, 조금 일찍 설정

///

공공 자동 ()

{

_age = 5;

_isMoving = 거짓;

색상 = "퍼플";

= "스코다 옥타 비아를"이름;

}

///

/// 방법은 자동차 세의 반환 값을 깨닫는다. 왜 이런 일이 필요하다?

/// 개인 액세스 한정자는 클라이언트의 변경이 가능하지 않습니다.

///

/// 차의 나이를 돌려줍니다.

공공 문자열 GetAge ()

{

+ _age + "년." "선택한 시스템, 순간"를 반환;

}

///

자동차가 움직이지 않는 경우 ///이 방법은 운동의 시작을 구현합니다. 가변 oboznalsya 검사 차량 (또는 이동되지 않음), 그 결과에 따라 조건이 적절한 액션 / 메시지가 표시된다.

///

공공 무효 시작 ()

{

경우 (_isMoving)

{

Console.WriteLine ( "운동은 이미 시작되었습니다");

}

그렇지 않으면

{

= 사실 _isMoving;

Console.WriteLine는 ( "준비, 세트 .. 떨어져 간다!");

}

}

///

움직임이 시작 된 경우 ///,이 방법은 그를 중지합니다. 고려 이전의 경우와 같은 프로그램 로직.

///

공공 무효 정지 ()

{

경우 (_isMoving)

{

_isMoving = 거짓;

Console.WriteLine ( "정지 기계");

}

그렇지 않으면

{

Console.WriteLine ( ". 오류 자동차 등, 움직이지 않는 정치");

}

}

///

차량이있는 경우 ///는 좌회전을 구현

///

공공 무효 MoveLeft ()

{

경우 (_isMoving)

{

Console.WriteLine ( "완료 좌회전");

}

그렇지 않으면

{

Console.WriteLine ( ". 오류 차량은 고정 회전 기능은 현재 사용할 수 없습니다입니다.");

}

}

///

/// 우회전와 유사한 방법

///

공공 무효었던 MovieRight ()

{

경우 (_isMoving)

{

Console.WriteLine (이하 "우회전하는 것은 성공적으로 구현되었습니다");

}

그렇지 않으면

{

Console.WriteLine는 ( ". 차를 오류 지점이 순간에 행동이, 그것을 수행하는 것은 불가능하다 우회전에서 이동하지 않은 ..");

}

}

}

}

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ko.birmiss.com. Theme powered by WordPress.