777 Shares 9460 views

OLP – ce qui est-ce? Les principes de base de la programmation orientée objet

Pourquoi la programmation orientée objet est préféré dans la plupart des projets? OLP offre un moyen efficace de faire face à leur complexité. Au lieu de considérer un programme comme une séquence d'instructions exécutables, il le représente en tant que groupe d'objets avec certaines propriétés et les produire avec certaines actions. Il en résulte une application plus claire, plus fiables et legkosoprovozhdaemyh.

Les principes de base de la programmation orientée objet (POO) formés parce que les restrictions ont été trouvées dans les approches préexistantes. Parmi eux – un accès illimité aux données et un grand nombre de liens, qui imposent des restrictions au changement. Leur prise de conscience et les causes importantes à comprendre ce que la programmation POO et quels sont ses avantages.

langues de procédure

C, Pascal, Fortran, et les langues similaires sont d'ordre procédural. Autrement dit, chacun de l'opérateur indique à l'ordinateur de faire quelque chose: pour obtenir les données, additionner les chiffres, répartis en six, le résultat affiché. Annexe langage procédural est la liste d'instructions. Si elle est faible, aucun autre principe d'organisation (souvent appelé un paradigme) n'est pas nécessaire. Le programmeur crée une liste d'instructions, et l'ordinateur les exécute.

Séparation des fonctions

Lorsque les applications deviennent liste plus lourde des tours. Peu de gens peuvent comprendre plus de quelques centaines instructions jusqu'à ce qu'ils soient regroupés. Pour cette raison, la fonction a été le moyen de rendre l'application plus compréhensible pour ses créateurs. Dans certaines langues, le même concept peut être appelé sous-routines ou procédures.

L'application est divisée en fonctions, dont chacune a une fonction bien définie et l'interface.

L'idée de la séparation des procédures peut être étendu dans un ensemble plus vaste de l'objet appelé un module, mais le principe est analogue: le regroupement des composants qui portent des listes de documents.

La séparation des fonctions et modules – l'une des pierres angulaires de la programmation structurée, qui, depuis plusieurs dizaines d'années jusqu'à ce que l'OLP était qu'il pose paradigme.

problèmes de programmation structurés

Les applications deviennent plus grandes, la programmation structurée commence à éprouver des difficultés. Les projets deviennent trop complexes. décalé graphiques. Elle implique un grand nombre de programmeurs. La complexité a augmenté. Les coûts fusa, le calendrier a été déplacé plus loin, et il est venu l'effondrement.

L'analyse des causes des échecs a révélé des lacunes paradigme de procédure. Quelle que soit la façon dont l'approche de programmation mis en œuvre bien structuré, de grandes applications deviennent trop complexes.

Quelles sont les causes de ces problèmes liés aux langues de procédure? Tout d'abord, les fonctions ont un accès illimité aux données mondiales. En second lieu, les procédures et les mauvaises valeurs non liées simulent le monde réel.

Si l'on considère ces questions dans le contexte du logiciel de comptabilité d'inventaire, l'un des éléments les plus importants des données globales est un ensemble d'UGS. Différentes fonctions peuvent les référer à entrer une nouvelle valeur, elle est affichée, les changements et ainsi. D.

un accès illimité

Le programme écrit, par exemple, en C, il existe deux types de données. Local caché dans la fonction et d'autres procédures ne sont pas utilisées.

Lorsque deux ou plusieurs fonctions ont accès aux mêmes données, celui-ci doit être globale. Telle est, par exemple, sont pris en compte les informations sur les sujets. Les données globales peuvent être toute procédure disponible.

Dans un grand programme, il y a beaucoup de fonctionnalités et de nombreux éléments globaux. Le problème du paradigme de procédure est qu'elle conduit à un plus grand nombre de liens possibles entre eux.

Un tel grand nombre de connexions provoque plusieurs difficultés. Tout d'abord, cela complique la compréhension de la structure du programme. En second lieu, difficile à changer. Changement dans l'élément de données globales peut nécessiter un ajustement de toutes les fonctions qui y ont accès.

Par exemple, dans la personne qui représente le programme décide que le code objet représenté ne doit pas être constitué de 5 chiffres et de 12. Cela nécessitera un changement du type de données de court à long. Maintenant, associé au code de fonction doit être modifié pour fonctionner avec le nouveau format.

Lorsque les éléments sont modifiés dans une application plus large, il est difficile de dire quelles procédures ont accès. Mais même si ce chiffre, les changer peut entraîner un mauvais fonctionnement avec d'autres données globales. Tout est relié à tout le reste, donc un changement dans un endroit se retourner contre une autre.

La modélisation du monde réel

Le deuxième problème le plus important du paradigme procédural est que son emplacement des données et des fonctions spécifiques simulent mal les choses dans le monde réel. Ici, nous avons affaire à des objets tels que des personnes ou des voitures. Ils sont comme aucune donnée ou la fonction. Complexes objets réels ont des attributs et des comportements.

attributs

Des exemples d'attributs (parfois appelés propriétés) pour les gens sont la couleur des yeux et le nom du poste, pour une voiture – la puissance et le nombre de portes. En fin de compte, les attributs du monde réel équivalent aux données du programme. Ils ont des valeurs spécifiques, telles que le bleu (couleur des yeux) ou quatre (le nombre de portes).

comportement

Comportement – est que les objets du monde réel sont produits en réponse à une sorte d'impact. Si vous demandez à un patron pour une augmentation de salaire, la réponse est « oui » ou « non ». Si vous appuyez sur le frein, la voiture s'arrête. Et arrêtant les comportements d'énonciation sont des exemples. Comportement similaire à la procédure: il est appelé à faire quelque chose, et il le fait. Ainsi, les données et les fonctions eux-mêmes ne modélisent pas dans le monde réel des objets efficacement.

aborder

L'objet en POO est représenté comme un ensemble de données et de fonctions. Seules les procédures qui sont appelées fonctions membres en C ++, permettent d'obtenir sa valeur. Ceux-ci sont cachés et protégés des changements. Significations et les fonctions sont encapsulées en un seul. Encapsulation et upryatyvanie – termes de base dans la description des langages orientés objet.

Si vous souhaitez modifier les données, il sait exactement quelles fonctions interagissent avec eux. Aucune autre procédure ne peut y avoir accès. Cela simplifie l'écriture, le débogage et le maintien du programme.

La demande se compose généralement de plusieurs objets qui interagissent les uns avec les autres, ce qui provoque les fonctions membres.

Aujourd'hui, la langue la plus largement utilisée POO (programmation orientée objet) – C ++ (plus plus). En Java ne dispose pas des fonctionnalités telles que les pointeurs, les modèles et l'héritage multiple, ce qui le rend moins puissant et plus polyvalent que C ++. C # n'a pas encore atteint la popularité de C ++.

Il convient de noter que ce qu'on appelle les fonctions membres dans les méthodes appelées C ++ dans d'autres langages orientés objet tels que Smalltalk. Les éléments de données sont appelées attributs. Appeler une méthode de l'objet lui envoie des messages.

analogie

Vous pouvez imaginer les objets des services de l'entreprise. Dans la plupart des organisations, les employés ne travaillent pas un jour avec le personnel, le salaire surfacturation suivant, puis une semaine engagés dans le commerce de détail. Chaque département a son propre personnel, aux tâches clairement définies. Il existe propres données: indicateurs des salaires, des ventes, du personnel comptable, etc. Les gens dans les départements travaillent avec leurs informations … La division de la société, par conséquent, facilite le contrôle de ses opérations et maintient l'intégrité des données. La comptabilité est responsable de la paie. Si vous voulez connaître le montant total des salaires versés à la branche sud en Juillet, ne pas besoin de se plonger dans l'archive. Il suffit d'envoyer une note à la personne responsable, attendez que cette personne ait accès aux données et envoie la réponse aux informations demandées. Cela garantit la conformité à la réglementation et l'absence d'ingérence extérieure. De la même manière un objet dans l'OLP fournit l'application de l'organisation.

Il faut se rappeler que l'orientation des objets ne concerne pas les détails du programme de travail. La plupart des instructions C ++ opérateurs correspondent aux langues de procédure, comme C. En fait, les fonctions membres en C ++ sont très semblables à des fonctions dans C. Seul le contexte plus large permettra d'établir si l'instruction procédurale ou orientée objet.

L'objet en POO: Définition

Lors de l'examen du problème de la programmation dans un langage orienté objet au lieu de questions au sujet de sa division en fonctions distinctes est un problème dans les installations de séparation. la pensée POO est beaucoup plus facile de développer des applications. Cela est dû à la similitude des logiciels et des objets réels.

Quel genre de choses sont des objets en POO? Voici quelques catégories typiques.

objet physique en POO – est:

  • modèles de flux de transport;
  • les composants électriques dans les programmes de conception de circuit;
  • Le modèle économique du pays;
  • avions dans le système de contrôle du trafic aérien.

Les éléments de l'environnement de l'ordinateur de l'utilisateur:

  • Menu;
  • fenêtres;
  • graphiques (ligne, rectangle, cercle);
  • clavier, souris, imprimante, lecteurs de disque.

personnes:

  • travailleurs;
  • étudiants;
  • clients;
  • vendeurs.

informations:

  • la tenue des livres;
  • une affaire privée;
  • dictionnaire;
  • table des latitudes et longitudes des colonies de peuplement.

Communication des objets du monde réel et l'OLP était le résultat d'une combinaison de fonctions et les données qu'ils ont révolutionné la programmation. Une telle correspondance étroite dans les langues de procédure là-bas.

classe

Les objets de l'OLP – un membre de la classe. Qu'est-ce que cela signifie? Les langages de programmation ont intégré les types de données. Type int, t. E. Un entier qui est prédéterminée en C ++. Vous pouvez déclarer un certain nombre d'int des variables.

De même, une pluralité d'objets définis par une classe. Il définit les fonctions et les données incluses dans ses installations, et non pas les créer, ainsi qu'un int ne crée pas les variables.

Classe dans l'OLP – une description d'un certain nombre d'objets similaires. Prince, Sting et Madonna sont les chanteurs. Il n'y a pas ce nom, mais les gens peuvent être appelés ainsi, si elles ont les caractéristiques appropriées. objet POO – cette instance.

héritage

Dans la vie, les classes sont divisées en sous-classes. Par exemple, les animaux sont divisés en amphibiens, les mammifères, les oiseaux, les insectes et ainsi de suite. D.

Le principe de ce type de division est que chaque sous-classe possède des caractéristiques communes avec la classe dont la. Toutes les voitures ont des roues et un moteur. Ce sont les caractéristiques déterminantes des véhicules. Outre les caractéristiques générales de chaque sous-classe a ses propres caractéristiques. Il y a beaucoup de sièges d'autobus et les camions ont l'espace pour transporter des charges lourdes.

De même, une classe de base peut être un parent de sous-classe plusieurs dérivés qui peuvent être définis afin qu'ils partageront ses propres caractéristiques avec l'addition. L'héritage comme des fonctions, ce qui simplifie la procédure programme. Si plusieurs parties du code sont en train de faire à peu près la même chose, vous pouvez extraire les éléments communs et les mettre dans une procédure. Trois domaines d'application peut appeler la fonction pour exécuter des actions communes, mais ils peuvent produire et de ses propres opérations. De même, la classe de base contient des informations communes au groupe des dérivés. Une fonction similaire réduit l'héritage de programme orienté objet et clarifier la relation de ses éléments.

recyclage

Une fois que la classe est créée et débogué, il peut être transféré à d'autres programmeurs à réutiliser dans vos propres applications. Il est comme une bibliothèque de fonctions qui peuvent être inclus dans différentes applications.

En POO, l'héritage est une extension de l'idée d'une utilisation multiple. D'une classe existante, sans changer, nous pouvons former un nouveau avec l'ajout d'autres fonctions. La facilité de réutilisation des logiciels existants – un avantage important de l'OLP. On croit qu'il offre une rentabilité de plus en plus de l'investissement initial.

La création de nouveaux types de données

Installations appropriées pour la création de nouveaux types de données. Supposons qu'un programme utilise les valeurs en deux dimensions (par exemple, coordonnées ou latitude et longitude), et ont un désir d'exprimer l'action de l'arithmétique sur les:

position1 = Position + origine,

où position1, la position et l' origine – une paire de valeurs numériques indépendantes. Création d'une classe qui comprend ces deux valeurs, et les déclarations de variables de ses objets crée un nouveau type de données.

Polymorphisme, surcharge

Opérateurs = (égal) et + (plus) utilisés dans l'arithmétique de position ci-dessus ne se comportent pas aussi bien que d'un type intégré, comme int. objets de position, et d'autres. ne sont pas prédéterminées et définies par le logiciel. Comment ces opérateurs savent comment les gérer? La réponse réside dans le fait que les nouveaux comportements peuvent être définis pour eux. Ces opérations seront des fonctions membres Position de classe.

Utilisation des opérateurs ou des procédures en fonction de ce qu'ils travaillent est appelé polymorphisme. Quand il y a un opérateur, tel que + ou =, a l'occasion de travailler avec le nouveau type de données, il est dit qu'il est surchargé. Surcharge dans l'OLP – une sorte de polymorphisme. Il est sa caractéristique importante.

Un livre sur l'OLP « Programmation orientée objet pour les nuls » permettra à chacun de se familiariser avec ce sujet plus en détail.