컴퓨터, 프로그래밍
PLO -이 무엇입니까? 객체 지향 프로그래밍의 기본 원칙
왜 객체 지향 프로그래밍은 대부분의 프로젝트 바람직하다? PLO는 복잡성을 처리 할 수있는 효과적인 방법을 제공합니다. 대신에 실행 가능한 명령의 시퀀스로 프로그램을 고려, 그것은 특정 속성을 가진 개체 그룹으로 나타내며, 특정 작업로를 생산하고 있습니다. 이것은 명확하게,보다 안정적이고 legkosoprovozhdaemyh 응용 프로그램에서 발생합니다.
의 기본 원칙 객체 지향 프로그래밍 (OOP)은 제한이 기존의 접근 방식에서 발견 되었기 때문에 형성했다. 이 중 - 변화에 제한을 부과 데이터 링크의 많은 수에 제한없이 액세스 할 수 있습니다. 중요한 그들의 인식과 원인은 무엇 OOP 프로그래밍을 이해하고 그것의 이점은 무엇인가.
절차 언어
C, 파스칼, FORTRAN, 유사한 언어는 절차이다. 데이터를 얻기 위해 육으로 구분 번호, 표시되는 결과를 추가 : 즉, 운전자의 각이 뭔가를 할 컴퓨터를 알 수있다. 부록 절차 언어는 명령 목록입니다. 이 작은 경우, (종종 패러다임이라한다) 다른 조직 원리는 필요하지 않습니다. 프로그래머는 명령의 목록을 작성하고 컴퓨터를 실행합니다.
기능의 분리
응용 프로그램은 턴 성가신 목록이되면. 그들이 그룹화 될 때까지 몇 백 지침보다 더 이해할 수있는 몇 가지. 이러한 이유로, 함수는 제작자 응용 프로그램이 더 이해 할 수있는 방법이었다. 일부 언어의 경우, 동일한 개념은 서브 루틴 또는 절차 호출 할 수 있습니다.
이 앱은 명확하게 정의 된 목적과 인터페이스를 가지고 각각의 기능으로 구분된다.
절차의 분리의 아이디어는 모듈이라는 개체의 큰 그룹으로 확장 될 수 있지만 원리는 유사하다 : 문서의 목록을 수행하는 구성 요소의 그룹.
기능과 모듈의 분리 - 팔레스타인 해방이 될 때까지 수십 년 동안이 패러다임을 포즈 구조화 프로그래밍의 코너 돌 중 하나.
구조화 된 프로그래밍 문제
응용 프로그램은 큰 해짐에 따라, 구조화 프로그래밍 의 어려움을 경험하기 시작했다. 프로젝트가 너무 복잡해진다. 그래픽을 이동했다. 그것은 프로그래머의 큰 숫자를 포함한다. 복잡성은 성장했다. 최대 촬영 비용, 일정 추가로 이동되고, 붕괴가왔다.
실패의 원인 분석 절차 적 패러다임 결함을 밝혔다. 에 관계없이 잘 구현 프로그래밍 접근 방식을 구조화하는 방법, 많은 응용 프로그램이 지나치게 복잡해진다.
절차 적 언어와 관련된 이러한 문제의 원인은 무엇입니까? 첫째, 기능은 글로벌 데이터 무제한 액세스 할 수 있습니다. 둘째, 관련이없는 절차 및 나쁜 값은 현실 세계를 시뮬레이션 할 수 있습니다.
우리는 재고 회계 소프트웨어의 맥락에서 이러한 문제를 고려하면, 글로벌 데이터의 가장 중요한 요소 중 하나의 SKU의 집합입니다. 다른 기능은 변경 사항을 표시하고 그렇게되고, 새 값을 입력하도록 참조 할 수 있습니다. D.을
무제한 액세스
이 프로그램은 예를 들면, C에서, 데이터의 두 종류가 있으며, 기록. 지역 함수 내 숨겨진 다른 절차는 사용되지 않습니다.
두 개 이상의 기능이 동일한 데이터에 액세스 할 때, 후자는 글로벌해야합니다. 이러한 예를 들어, 주제에 대한 계정 정보로 가져옵니다. 글로벌 데이터는 가능한 절차 될 수있다.
큰 프로그램, 많은 기능과 많은 글로벌 요소가있다. 절차 적 패러다임의 문제는 그들 사이의 잠재적 인 링크 더 많은 수의 리드는 것이다.
이러한 많은 수의 연결은 여러 어려움을 야기한다. 첫째, 프로그램의 구조에 대한 이해를 복잡하게한다. 둘째, 어려운 변경 될 수 있습니다. 글로벌 데이터 항목의 변화가에 액세스 할 수있는 모든 기능의 조정이 필요할 수 있습니다.
예를 들어, 누군가 회계 프로그램이 결정에 차지 오브젝트 코드가없는 5 자리로 구성해야하고, 12에서이 변화를 필요로 데이터 형식 단기에서 장기로한다. 기능 코드가 새로운 형식에서 작동하도록 수정해야합니다와 지금 관련.
요소가 큰 응용 프로그램에서 변경하면 절차가 그들에 대한 액세스 권한이 무슨 말을하기가 어렵습니다. 그러나 심지어이 그림 경우, 그 다른 글로벌 데이터와 오작동이 발생할 수 있습니다 변경. 모든 것은 다른 모든 것들과 연결, 그래서 한 장소의 변화가 다른에 역효과를한다.
현실 세계를 모델링
절차 적 패러다임의 두 번째 더 중요한 문제는 그 위치 특정 데이터와 기능을 제대로 현실 세계에서 일을 시뮬레이션한다는 것입니다. 여기에서 우리는 사람이나 자동차와 같은 개체를 다루고있다. 그들은 데이터가 없거나 기능과 같다. 복잡한 현실 세계의 객체는 속성과 행동을해야합니다.
속성
전원 및 문 수 - 사람들의 속성 (라고도 속성)의 예는 눈 색깔과 게시물의 이름, 자동차입니다. 그것은 알고 보니, 프로그램의 데이터에 상응하는 현실 세계의 속성. 그들은 청색 (눈의 색) 또는 사 (문의 수)와 같은 특정 값을 가지고있다.
행동
행동 - 실제 개체에 미치는 영향 어떤 종류의에 대한 응답으로 생산되고 있다는 점이다. 당신이 급여 증가 보스를 묻는다면, 대답은 "예"또는이다 "아니오." 당신이 브레이크를 누르면, 차량이 정지됩니다. 그리고 정지 발화 행동은 예입니다. 절차와 비슷 행동은 : 뭔가를 호출, 그리고 그렇게된다. 따라서, 그 자체로 데이터와 기능은 실제 효율적으로 개체를 모델링하지 않습니다.
주소
OOP의 목적은 데이터 및 기능들의 집합으로 표현된다. 오직 C ++에서 멤버 함수를 호출하는 과정은 그 값을 획득 할 수있다. 이 숨겨 및 변경으로부터 보호된다. 의미와 기능을 하나에 캡슐화됩니다. 캡슐화 및 upryatyvanie - 객체 지향 언어의 설명에 기본 용어.
당신이 데이터를 변경하려는 경우, 함수는 그들과 상호 작용을 정확히 알고있다. 다른 절차에 액세스 할 수 없습니다. 이 작성, 디버깅 및 프로그램을 유지 관리를 단순화합니다.
어플리케이션은 전형적 멤버 함수를 일으키는 상호 작용하는 여러 개체로 구성된다.
오늘날 가장 널리 사용되는 언어 OOP (객체 지향 프로그래밍) - C ++ (플러스 플러스). 자바에서는 이러한 포인터 템플릿과 C ++에 비해 덜 강력하고 다양한 만드는 다중 상속과 같은 일부 기능이 부족하다. C #을 아직 C ++의 인기에 도달하지 않았다.
여기에는 스몰 토크 같은 다른 객체 지향 언어에서 C ++ 호출 방법에 멤버 함수를 소위 주목해야한다. 데이터 항목이라는 속성입니다. 객체의 메소드를 호출하면 (자), 그에게 메시지를 보내고있다.
유추
당신은 회사 부서의 객체를 상상할 수있다. 대부분의 조직에서 직원들은 직원, 다음 과충전 급여 및 소매 무역에 종사 한 후 일주일에 하루 작동하지 않습니다. 각 부서는 명확하게 할당 된 업무와 자신의 직원을 가지고 있습니다. 부서에있는 사람들이 자신의 정보 작업 등 임금, 판매, 회계 직원의 지표 ... : 자신의 데이터가 있습니다 회사의 분할, 따라서, 그 작업의 제어를 용이하게하고 데이터 무결성을 유지합니다. 회계는 책임이 급여. 당신이 7 월에 남부 지점에 지급 임금의 총액을 알고 싶다면, 아카이브으로 탐구 할 필요가 없습니다. 책임있는 사람에게 메모를 보내 그 사람이 데이터에 액세스하고 요청 된 정보에 대한 응답을 보낼 때까지 기다려야하기에 충분하다. 이 규정을 준수하고 외부 간섭의 부재를 보장합니다. 같은 방법으로 PLO의 목적은 조직 응용 프로그램을 제공합니다.
개체의 방향이 작업 프로그램의 세부 사항에 적용되지 않음을 기억해야한다. 연산자를 C ++ 대부분의 지시는 사실 C와 같은 절차 언어에 해당하는, C. 함수와 매우 유사 C ++의 멤버 함수 만 넓은 컨텍스트는 명령 절차 또는이 객체 지향 여부를 설정할 수 있습니다.
OOP의 객체 : 정의
대신 별도의 기능들로 분할에 대한 질문의 객체 지향 언어로 프로그램의 문제를 고려할 때 분리 시설의 문제입니다. OOP의 사고는 응용 프로그램을 개발하는 것이 훨씬 쉽다. 이 소프트웨어와 실물의 유사성 때문이다.
OOP의 객체 사물의 어떤 종류입니까? 다음은 몇 가지 일반적인 범주입니다.
OOP에서 물리적 객체 -입니다 :
- 교통 흐름 모델;
- 회로 설계 프로그램에 전기 부품;
- 국가의 경제 모델;
- 항공 교통 제어 시스템 항공기.
환경 사용자의 컴퓨터의 구성 요소 :
- 메뉴;
- 창;
- 그래픽 (선, 직사각형, 원);
- 키보드, 마우스, 프린터, 디스크 드라이브.
명 :
- 노동자;
- 학생;
- 고객;
- 판매자.
정보 :
- 책을 유지;
- 사적인 문제;
- 사전;
- 위도와 타협의 경도의 테이블.
현실 세계의 통신 객체와 PLO는 기능과 데이터가 프로그래밍을 혁명의 조합의 결과였다. 이 절차 언어의 이러한 긴밀한 일치합니다.
클래스
클래스 멤버 - 팔레스타인 해방의 개체. 그것은 무엇을 의미 하는가? 프로그래밍 언어가 내장되어 데이터 유형. 입력 INT, t. E. C에 소정의 정수 ++. 당신은 INT 변수의 수를 선언 할 수 있습니다.
마찬가지로, 복수의 오브젝트가 하나 개의 클래스로 정의. 그것은 INT는 변수를 생성하지 않는 기능과 시설에 포함 된 데이터뿐만 아니라, 그들을 창조를 정의합니다.
팔레스타인 해방의 클래스 - 비슷한 객체의 수의 설명입니다. 왕자, 스팅과 마돈나는 가수입니다. 이 그 이름으로 아무도 없지만, 그들이 적절한 특성을 가지고 있다면 사람들은, 그래서 호출 할 수 있습니다. OOP 객체 -이 인스턴스.
계승
삶에서, 클래스는 서브 클래스로 나누어집니다. 예를 들어, 동물 양서류, 포유류, 조류, 곤충에 등 분할된다. D.
부문의 이러한 종류의 원리는 각각의 서브 클래스는 클래스의 일반 기능을 가지고 있다는 것입니다. 모든 자동차는 바퀴와 모터가 있습니다. 이 차량의 정의 특징이다. 각 서브 클래스의 일반적인 특징뿐만 아니라 자신의 특성을 가지고있다. 이 많은 버스 좌석이 있고 트럭 무거운 하중을 운반 할 수있는 공간이있다.
마찬가지로, 기본 클래스가 추가로 자신의 특성을 공유 할 수 있도록 정의 할 수있는 서브 클래스 부모 여러 파생 될 수 있습니다. 절차 적 프로그램을 단순화 기능과 같은 상속. 코드의 여러 부분이 거의 같은 일을하는 경우에는 공통 요소를 추출하여 하나 개의 절차에 넣어 수 있습니다. 세 가지 응용 분야는 일반적인 작업을 수행하는 함수를 호출 할 수 있지만 생산하고 자신의 작업을 할 수 있습니다. 유사하게, 기본 클래스 유도체의 그룹에 공통적 인 정보를 포함한다. 유사한 기능은 객체 지향 프로그램의 상속을 줄이고 요소의 관계를 명확히.
재활용
클래스가 생성 및 디버깅되면, 자신의 애플리케이션에서 재사용 할 다른 프로그래머로 전송할 수 있습니다. 그것은 서로 다른 응용 프로그램에 포함 할 수있는 함수의 라이브러리 같다.
OOP에서 상속은 여러 사용의 아이디어의 확장입니다. 기존 클래스에서 변경하지 않고, 우리는 다른 기능의 추가로 새로운 일을 형성 할 수있다. 기존 소프트웨어의 재사용의 용이성 - 팔레스타인 해방기구의 중요한 장점. 초기 투자의 증가 수익성을 제공하는 것으로 생각된다.
새로운 데이터 유형을 만들기
새로운 데이터 유형의 생성에 적합한 시설. 프로그램 이차원 값을 사용한다고 가정 (예를 들어 좌표 또는 위도 및 경도), 및 이들의 산술 동작을 표현하려는 욕구를 가지고
position1 위치 = + 기원
여기서 position1 위치 와 원점 - 독립적 인 수치 쌍. 그 개체의이 두 값을 포함 클래스 및 변수 선언을 만들기 새 데이터 유형을 만듭니다.
다형성, 오버로드
연산에서 사용되는 연산자 (같음) =하고, + (플러스)는 상기 위치뿐만 아니라 작용하지 않는 내장 int와 같은 유형. 위치 개체 및 다른 사람. 미리 정해진 소프트웨어에 의해 설정되지 않습니다. 어떻게 이러한 연산자를 처리하는 방법을 알 수 있습니까? 대답은 새로운 행동이 그들을 위해 설정 될 수 있다는 사실에있다. 이러한 작업은 멤버 함수 클래스 위치 할 것이다.
다형성 소위 그들이 작업에 따라 사업자 또는 절차를 사용하여. 새로운 데이터 유형과 일할 수있는 기회를 얻을 수 등 + 나 = 같은 연산자가있을 때, 그것은 과부하 말한다. 팔레스타인 해방기구의 과부하 - 다형성의 일종. 그것은 그것의 중요한 기능입니다.
팔레스타인 해방 "인형을위한 객체 지향 프로그래밍 '에 관한 책은 모든 사람들이이 주제에 대해 좀 더 자세하게 익숙해 질 수 있습니다.
Similar articles
Trending Now