Quelle est la différence entre les langages orientés objet et les langages non orientés objet?
J'ai entendu parler de la façon dont C est un non-langage orienté objet java est un langage orienté-objet. Je me demandais quelle était la différence?
source d'informationauteur azn_person
Vous devez vous connecter pour publier un commentaire.
Wow, beaucoup de grands OOP termes étant jeté autour de ce mec. Étant quelqu'un qui a commencé en programmation procédurale et est maintenant la plupart du temps de faire de la POO, c'est sur le plan conceptuel, je pense que la différence (sans tous les grands termes):
En C, vous avez des choses a appelé les structures qui peuvent contenir de l'état. Qu'ils semblent comme des objets, par exemple, vous pourriez avoir une structure appelée de Voitures et de créer des instances de Voitures et de définir sa marque, son modèle, et des champs de couleur. Cependant, on ne peut pas dire que la Voiture struct instances rien à faire. Au lieu de cela, si vous souhaitez laver votre voiture, vous devez passer la voiture instance externe de la fonction comme ceci:
OOP langues utilisent un concept différent de celui des structures appelées Classes, et les objets sont des instances de ces classes. Oublier ces grands mots d'héritage et de polymorphisme pour l'instant (ce sont des sujets plus avancés, pour une fois, vous obtenez des Classes). Il suffit de penser de l'exemple d'une voiture. En Java, par exemple, vous pouvez définir une classe appelée la Voiture en tant que telle:
Alors, vous faire une instance d'une voiture de la sorte:
Ce qui est réel similaire à une structure (struct). Maintenant, ce qui fait de la programmation orientée objet différent, c'est que vous pouvez étendre la définition de Classe pour définir les méthodes de la classe - qui sont similaires à des fonctions de procédure, sauf qu'ils fonctionnent toujours sur un objet. Donc, nous allons ajouter le procédé de lavage:
Vous pouvez désormais le faire:
Nous espérons que cet exemple permet de. Il y a, bien sûr, beaucoup plus à la programmation orientée objet (et de procédure) que cet exemple simple. Mais la principale différence est dans le fait d'avoir des classes d'objets "propre" de leurs propres méthodes.
Programmation procédurale et orientée objet, à la fois différente de la programmation les paradigmes de l' sont la proverbiale des pommes et des oranges. PP s'appuie sur des "sous-programmes". La programmation orientée objet envoie des "messages" à des "objets", qui changent de "l'état" des objets, et d'envoyer des messages à d'autres objets; en outre, le comportement des objets peut être prolongée, la création de nouveaux types d'objets. Les deux reposent sur l'affectation et les effets secondaires. Des problèmes peuvent avoir les solutions naturelles dans un paradigme, mais plutôt baroque solutions dans un autre. C'est un problème peut être facilement modélisées en utilisant des objets de la transmission de messages, ou par les procédures.
Langages de programmation peuvent soutenir les paradigmes de l'au-delà de ceux qu'ils prennent en charge en natif, mais il le programmeur doit mettre en œuvre les structures nécessaires. Par exemple, vous pouvez faire de la programmation orientée objet avec C; en fait, certains OO extensions de C invoqué les préprocesseurs qui produit du code C en sortie.
Comme vous le progrès de vos études, vous aurez envie de regarder par-dessus l'autre les paradigmes de l'en particulier programmation fonctionnelle. Il ne serait pas mal de regarder la logique de programmation (comme l'illustre l'exemple en Prolog) et programmation par flux de données (voir Pure Data pour un exemple).
Java est un langage principalement utilisé pour la programmation orientée objet et C un langage principalement utilisé pour la procédure de programmation orienté
Il ya une grande explication sur Wikipédia à propos de programmation Procédurale vs la programmation orientée objet:
Mais pour faire des choses plus essentielles que vous pouvez penser à des objets, comme vous pensez à des objets dans le monde réel, comme une voiture qui aurait tous les attributs d'une voiture comme les autres objets comme les fenêtres et les pneus.
Je vais vous donner la plus simple et la réponse intuitive, vous pouvez obtenir.
(En tenant compte de Java est un langage orienté objet et C est un langue de la procédure)
Langage Orienté Objet
Langue De La Procédure
OO langues faciliter l'écriture des programmes orientés objets, en vous offrant des constructions de faire abstraction de données et le polymorphisme facile à mettre en œuvre.
La programmation orientée objet paradigme dit de vous encapsuler les variables d'état dans des entités appelées "objets", qui communiquent par passage de messages, le plus souvent mis en œuvre comme des fonctions avec un "spécial"
this
ouself
argument.Un langage de programmation orienté objet est un langage conçu pour faciliter l'utilisation de l'oo paradigme facile. Sa sémantique et la syntaxe sont orientées vers cet objectif. L'héritage (de la classe ou prototypes) et un sous-type de polymorphisme important techniques qui rendent le concept abstrait de oo réalisable dans la pratique.
Les langages orientés objets sont construits autour de l'idée de structures de données, appelées objets qui contiennent, chacune, leurs propres données et les comportements. Par la combinaison de ces objets et de les faire interagir avec d'autres personnes que vous pouvez concevoir un programme qui reflète mieux le domaine du problème que vous essayez de résoudre.
Par exemple, dans une application bancaire, vous pourriez avoir des objets qui représentent des comptes, qui chaque stocker des données comme la balance et de mettre en œuvre certains comportements comme le transfert d'argent.
Dans une approche plus traditionnelle de langue, vous devez garder les données et les comportements dans des endroits différents.
À part d'essayer de caractériser une langue comme ayant un paradigme particulier, à sa base, vous pourriez trouver ce livre de William R. Cook utile: Sur la compréhension de l'abstraction de données, revisité. Il y a un projet de version disponibles. Il explore la différence entre les types de données abstraites et objets -- une distinction qui, après des années d'absorption dans divers langages de programmation, je ne pouvais plus voir.
J'ai trouvé le papier par voie de Guy Steele récent essai, Pourquoi les Langages Orientés Objet ont Besoin de Queue Appels.
OOP rend plus facile de briser un gros problème dans les plus petites autonome pièces. Vous pouvez ensuite créer quelque chose de plus complexe par la combinaison de ces pièces.
Langage Orienté objet est où vous pensez en termes d'objets. Toutefois, cela prend beaucoup de compétences. Vous ne pouvez pas prendre quelques C-code et de le ranger dans un objet et de l'appeler de la programmation orientée objet. Les principaux concepts de la programmation orientée objet sont l'héritage, l'encapsulation et de liaison dynamique.
Un programme peut être conceptuellement organisé de deux manières,autour de son code ou de données. La première approche s'appelle la modélisation orientée processus.La deuxième approche est appelée en tant que modèle orienté objet.