Salut,
Dans la plupart des langages orientés-objet, tu es obligé d’écrire une classe si tu veux créer un objet. Certains langages sont orientés-prototype (certains diront que c’est la véritable notion d’orienté-objet) et permettent de créer des objets à partir de rien ou à partir d’autres objets, sans définir de classes.
Comme dit par @Looping, dans d’autres langages, il n’y a pas d’objets ou de classes à proprement parler, mais on peut tout de même créer des types « structure » et agir dessus sans connaître son détail interne (comme sur objet), c’est ce qu’on appelle des « types de données abstraits » (abstract data type, ADT). On peut créer plein de structure de ce type qu’on vient de définir et tout se passe comme si on était dans un langage objet.
Maintenant, je reformule ta question : pourquoi créer un type si on ne crée qu’une seule entité de ce type ? Il y a plein de raisons :
- souvent tu es obligé de le faire, donc tu n’as pas le choix en fait ;
- souvent en tu auras pas plusieurs un jour (exemple : jeu coop, boom, tu as deux héros) ;
- définir un type, c’est définir le comportement (= les services) d’une entité, pas définir l’entité elle-même.
Le dernier point est important (déjà souligné par Looping), c’est l’essence de l’orienté objet et ce qui lui a permis tout le succès qu’on connaît : un objet fournit des services (à d’autres objets bien souvent).
Par exemple, tu imagines une entité "héros". Qu’est-ce que c’est en termes de comportements/services ? On peut imaginer ça par exemple :
- dire s’il est vivant ou mort,
- l’afficher sur un écran donné,
- le faire avancer dans une direction donnée,
- lui faire subir des dégâts,
- lui faire avaler une potion,
- lui faire attaquer une créature,
- mettre un objet dans son inventaire,
- etc.
Que tu en es un seul ou mille, ça ne change rien à ce que sait faire une entité "héros" : c’est sa classe.