COBOL (1959), puis aux langages procéduraux comme BASIC (1964), PASCAL (1968) et C (1973) et enfin vers des langages orientées objets à l'image du C++ (1983), Java (1995) et C# (2000)."/>

La programmation a évolué selon plusieurs étapes successives, en passant de l'assembleur à des langages spécialisés tels que FORTRAN (1957) et COBOL (1959), puis aux langages procéduraux comme BASIC (1964), PASCAL (1968) et C (1973) et enfin vers des langages orientées objets à l'image du C++ (1983), Java (1995) et C# (2000).

Une des étapes principales fut la programmation structurée, appelée également procédurale ou impérative, dont le principe fondamental était la décmposition d'un programme en de multiples sous-programmes ou modules effectuant chacun une certaine action non élémentaire, et partant, permettant de décomplexifier une application de grande taille.

Les langages orientés objets sont une nouvelle méthode de programmation qui tend à se rapprocher de notre manière naturelle d'appréhender le monde. Les L.O.O. se sont surtout posé la question "Sur quoi porte le programme ?". En effet, un programme informatique comporte toujours des traitements, mais aussi et surtout des données. Si la programmation structurée s'intéresse aux traitements puis aux données, la conception objet s'intéresse d'abord aux données, auxquelles elle associe ensuite les traitements. L'expérience a montré que les données sont ce qu'il y a de plus stable dans la vie d'un programme, il est donc intéressant d'architecturer le programme autour de ces données.

La programmation orientée objet se différencie radicalement de celle fondée sur des procédures. La programmation procédurale (ou impérative) met en oeuvre des fonctionnalités écrites sous la forme d'une liste d'instructions à exécuter progressivement, soit les unes après les autres et éventuellement avec des appels de procédures ou de fonctions effectuant chacune une certaine action non élémentaire.

La programmation orientée objet (POO) est basée sur la représentation par des objets, des entités définies par l'étude du problème à réaliser.

La POO décompose un programme en de multiples classes, soit des modules autonomes accomplissant certaines tâches. Ces classes permettent de créer des objets par l'instanciation de ces classes.

Les procédures ou fonctions effectuent. En général, une telle action ne peut pas se programmer de la même façon pour tous les types de données (ou objets).

La POO permet de développer des applications à partir d'objets, c'est-à-dire, d'entités possédant des propriétés, des méthodes et des événements, ces objets pouvant être une page Web, un formulaire, un tableau, une chaîne de caractères, un nombre, une image, etc..

Les propriétés sont des méthodes fournissant un accès à des valeurs simulant celles des champs. Les propriétés (ou attributs)d'un objet contiennent les valeurs relatives à cet objet, telles que la taille d'un tableau, le type de données d'un nombre, la contenu d'une chaîne de caractères, etc..
Les propriétés peuvent être simplement lues pour une affectation ou pour un affichage, ainsi que modifiées pour un paramétrage de l'objet à certaines valeurs.

Les méthodes d'un objet représentent les opérations que cet objet peut accomplir comme l'ajout d'une valeur dans un tableau, la concaténation d'une chaîne de caractères, la conversion du type de données d'un nombre.

Les événements d'un objet consistent en la capture d'une action sur cet objet, à l'image d'un clic de souris sur un bouton, la soumission d'un formulaire, le chargement et déchargement d'une page Web.

Les objets sont issus d'une instanciation de classe, ces dernières lui fournissant des propriétés, des méthodes et des événements, soit les membres de cette classe.

Une classe est un type référence encapsulant des données (champs et constantes), ainsi qu'un comportement (méthodes, propriétés, indexeurs, événements, opérateurs, constructeurs et destructeurs), pouvant contenir des types imbriqués.

Les champs représentent des variables contenant des valeurs.

Les constantes représentent des champs contenant des valeurs fixes.

Les indexateurs permettent d'indexer un objet par l'intermédiaire des méthodes d'accès get et set.

Les opérateurs permettent d'inclure les opérations mathématiques de base dans les classes par l'intermédiaire de la surcharge des opérateurs.

Sommaire