Comprendre objet et classe en programmation oreinté objet?

Résolu/Fermé
shyryu23 Messages postés 11 Date d'inscription lundi 20 juillet 2015 Statut Membre Dernière intervention 28 mars 2016 - 2 sept. 2015 à 16:29
shyryu23 Messages postés 11 Date d'inscription lundi 20 juillet 2015 Statut Membre Dernière intervention 28 mars 2016 - 2 sept. 2015 à 17:28
Bonjour,
En java, chaque fichier source contient la définition d'une ou plusieurs classes qui sont utilisées les unes avec les autres pour former une application.

On dit que une classe est une description abstraite d'un objet. Instancier une classe consiste à créer un objet sur son modèle.

Or, En java, une application est un objet. La classe est la description d'un objet. Un objet est une instance de classe.

Je ne comprends pas ce cours que j'ai trouvé sur internet. C'est quoi finalement un objet par rapport à une classe ainsi qu'une application à travers un dessin, schéma (description par un exemple).

Merci d'avance

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
2 sept. 2015 à 16:59
Bonjour,

Je reprends dans l'ordre :

"En java, chaque fichier source contient la définition d'une ou plusieurs classes"
Une seule classe publique par fichier source (le fichier porte d'ailleurs le nom de cette classe). S'il y a d'autres classes dans le fichier ce sont des cas particuliers inutiles à ton niveau.

"une classe est une description abstraite d'un objet."
La description n'est pas abstraite, au contraire, elle est même très détaillée puisque c'est la classe qui porte le code à exécuter.

"Instancier une classe consiste à créer un objet sur son modèle."
En effet, si la classe est un plat à tartes, l'objet est une tartes obtenue avec ce moule.

"En java, une application est un objet."
Non, je suis pas d'accord, le point d'entrée (la méthode main) est statique, il n'est donc lié à aucun objet.

"La classe est la description d'un objet."
Pas seulement, une classe c'est du code, ça peut construire des objets, mais ça peut aussi décrire des comportements qui ne sont pas liés à des objets.
Par exemple, la classe Math, qui permet de faire des calculs (racine carrée, sinus, cosinus, etc.) ne décrit en aucun cas des "objets Math"...

"Un objet est une instance de classe."
Dans ce sens là, oui. Si tu as un objet tu as forcément une classe (du code) derrière, mais ce n'est pas parce que tu as une classe que tu as forcément un objet.

"Je ne comprends pas ce cours que j'ai trouvé sur internet."
Il faudrait peut-être en chercher un autre... Les cours de JM. Doudoux ne sont pas vraiment adressés à des débutants.

"C'est quoi finalement un objet par rapport à une classe ainsi qu'une application"
Une classe c'est du code, c'est écrit par le développeur, ça ne bouge pas.
Un objet c'est une donnée, créée par le programme, qui peut évoluer au cours du temps (la donnée change) si on lui applique les changements décrit par la classe (le code décrit comment manipuler les données) et l'objet est détruit quand on ne s'en sert plus. On peut avoir des milliers d'objets d'une même classe qui vivent en même temps, chacun avec ses propres données, sa propre vie, mais qui respectent les même règles : le code de la classe.
Une application c'est l'ensemble du code (dans des classes donc) qui permettent de définir quelles données doivent être créées, à quelles moment, les manipuler comme il faut, afin de fournir à l'utilisateur un résultat (un affichage par exemple) par rapport aux données qu'il fournit aux systèmes.

Exemple : une application peut calculer la moyenne des notes des élèves. L'utilisateur entre au fur et à mesure les notes, cela créé des objets, pour stocker chaque note et calculer la moyenne, suivant les règles définies dans le code (règles d'arrondis, de pondération, etc.) pour finalement afficher le résultat (l'affichage étant décrit par le code).
0
shyryu23 Messages postés 11 Date d'inscription lundi 20 juillet 2015 Statut Membre Dernière intervention 28 mars 2016
2 sept. 2015 à 17:28
merci j'ai compris.
0