Bon, alors pour simplifier et donner un exemple concret (mais simpliste) :
En prog normale, tu donnes une série d'instruction organisées en fonctions, récursives ou non, mais dont le déroulement est linéaire.
En prog objet, tu définies des classes qui permettront de créer des objets. Dans la classe, tu définies des attributs de l'objet et des methodes.
Par exemple, dans ton programme, tu vas gérér une fenêtre. Une fenêtre a deux dimensions (X, Y), une position (pX, pY), et un état qui peut prendre trois valeurs : maximisé, minimisé ou intermédiaire. Ce sont les attributs.
Ensuite tu vas pouvoir interagir avec l'objet par le biais de methodes, comme par exemple :
agrandirFenetre, dimensionnerFenetre, réduireFenetre....
l'avantage, c'est que tu peux à n'importe quel moment créer une nouvelle fenêtre (donc un nouvel objet à partir de ta classe d'objet) qui aura ses attributs personnels, et qui réagira de façon indépendante d'une autre fenêtre.
Par exemple, tu as trois fenêtres à créer :
fenetre1.create()
fenetre2.create()
fenetre3.create()
ensuite, tu peux agrandir la 1ere, minimiser la 2eme et redimensionner la 3eme (+10pixels horiz, +0vert):
fenetre1.agrandirFenetre()
fenetre2.minimiserFenetre()
fenetre3.redimFenetre(10,0)
Autres avantages de la prog objet : tu peux faire hériter ta classe Fenetre pour, par exemple gérer une classe d'objets FenetreComplexe, qui sont des Fenetres avec une barre de menu. Tu n'as pas à redéfinir ce qui est commun, mais que ce qui est nouveau.
Bien sûr, ça ne se limite pas à l'interface. Si ton programme est un jeu, tu peux avoir une classe personnage de ce type :
Classe Personnage
Attributs :
vie
taille
force
age
sexe
...
methodes
naitre(avec un sexe défini, une taille initiale, un âge=0, une vie pas très élevée, une force pas très élevée)
grandir(X cm)
modifierLaForce(+/-X pts)
mourir()
...
Bon, c'est très restrictif, mais tu as une vue globale qui - à mon avis - est assez juste.