OoOoOoOhhhh, Cubike ! Ca c´est des langages interprétés tout simplement !
Des langages orientés objets ce sont des langages qui supportent les objets. Héhé.
Si tu as déjà programmé avec un bouquin, t´es peut-être tombé sur le fameux exercice du ´carnet d´adresses´. C´est courant, on demande de faire une application qui sauvegarde des personnes, des numéros de téléphone, etc... dans un fichier et qui peut les relire après. Ca force à utiliser une variable par caractéristique de l´utilisateur : numéro de téléphone, nom, prénom, etc...
Alors, les langages objets permettent de mieux représenter la personne en groupant ces variables. Ainsi, on pourrait désigner son nom par personne.nom, son numéro par personne.numéro, etc... personne est alors un objet.
Donc on fait les choses de la sorte : on dit d´abord à l´interpréteur ( dans le cas de Python ou Java) ce que c´est qu´une personne : c´est un objet ( lol) qui a un nom, un prénom, un numéro de téléphone.
class Personne:
[def __init__(self):
[[self.nom = " "
[[self.numero = 0000000000
[[self.prenom = " "
( les [ représente les espaces, obligatoires en Python pour délimiter les blocs d´instructions. Pourquoi __init__ ? Parce que c´est ce qui suit qui est automatiquement executé quand on créé un objet de ce type).
Ce que j´ai montré ici, c´est justement une définition des objets de type Personne. Mais on ne peut pas utiliser ces objets : Personne n´est qu´un modèle. Il faudra faire quelque chose du type :
>> foo = Personne()
pour créer une instance de la classe Personne. D´accord ? Après, pour fixer le nom, le prénom et le numéro de la personne, il suffit de faire
foo.nom = " Jobs"
foo.prenom = " Steve"
foo.numero = 0619351254
ce qui est plus simple que de créer trois variables distinctes. Et nous pouvons vérifier ça :
>> type(Personne)
< type ´class´>
>> type(foo)
< type ´instance´>
>> type(foo.numero)
< type ´int´>
Mais les avantages ne s´arrêtent pas là : imaginons que tu aies créé une classe ( un type d´objet) pour les numéro, et que ton programme puisse vouloir appeler quelqu´un n´importe quand. Dans ta classe de numéros, il te suffit de créer une méthode, autrement dit une fonction propre à une classe, qui appelle les numéros.
class Numeros:
[...
[def appelle(self):
[[# On ecrit le code ici
Et si au lieu, dans Personne, de faire ´self.numero = 0000000000´ on fait ´self.numero = Numeros()´ on pourra appeler chaque personne par
foo.numero.appelle()
J´ai été un peu imprécis, j´en ai bien peur... considère les objets comme des variables avec des fonctions propres, d´autres variables incrustées propres, etc...