Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1757 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Classe : vocabulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Classe : vocabulaire

n°1332594
casafa
Posté le 26-03-2006 à 20:45:25  profilanswer
 

Bonjour,
 
Pouvez-vous me donné une définition de "instance" et de "objet" ? Est-ce 2 mots qui veulent dire la même chose ?
 
Merci d'avance...

mood
Publicité
Posté le 26-03-2006 à 20:45:25  profilanswer
 

n°1332600
nargy
Posté le 26-03-2006 à 21:02:43  profilanswer
 

Oui. D habitude, on précise de quelle classe est l ``instance``, et on emploie ``objet`` de façon plus générale.

n°1332601
nargy
Posté le 26-03-2006 à 21:05:42  profilanswer
 

heu, aussi, tu peut avoir une instance d un type qui n est pas une classe, donc pas un objet. ça n a de sens que dans les languages qui ne sont pas objets ou font la différence entre les objets et les autres données.

n°1332604
casafa
Posté le 26-03-2006 à 21:09:03  profilanswer
 

Merci nargy.

n°1333591
coeli
Posté le 28-03-2006 à 13:29:44  profilanswer
 

un objet est un petit programme crée et géré par le programme principale (main) l'on peut creer plusieurs objet de meme type!  
 
Une classe décrit le contenue d'une série d'objet.
un objet est instancié a partir d'une classe.
 
 
ex: un objet instance de A contiendra un objet instance de B

n°1333751
slash33
Posté le 28-03-2006 à 15:41:37  profilanswer
 

Une comparaison efficace :
 
En patisserie tu utilises un moule pour faire un gateau. La classe c'est ton moule et les gateaux que tu formes avec ce sont tes objets.
 
Ouais je sais : tous les gateaux sont identiques alors que les objets ont une identité et un état propre.

n°1333762
nargy
Posté le 28-03-2006 à 15:51:48  profilanswer
 

> Ouais je sais : tous les gateaux sont identiques alors que les objets ont une identité et un état propre.
 
ben, c est pareil quand tu décore tes gateaux à la main :)

n°1333782
skelter
Posté le 28-03-2006 à 16:10:37  profilanswer
 

slash33 a écrit :

Une comparaison efficace :
 
En patisserie tu utilises un moule pour faire un gateau. La classe c'est ton moule et les gateaux que tu formes avec ce sont tes objets.
 
Ouais je sais : tous les gateaux sont identiques alors que les objets ont une identité et un état propre.


 
mieux, "peugeot 406" c'est la classe et la voiture en elle-meme est une instance.
Pour les bateaux on utilises meme le terme explicitement: "le Titanic est un liner de classe Olympic"

n°1333833
slash33
Posté le 28-03-2006 à 16:59:43  profilanswer
 

Certes mais c'est moins parlant. Avec un moule tu captes visuellement la métaphore alors qu'en parlant de voiture tu vas parler modèle, options, performances, process de fabrication (plus complexe que celui d'un gâteau), ...
 
Mais bon simple appréciation, je ne vais pas entrer dans un débat pour savoir quel exemple est le meilleur. Du moment que tout le monde comprend la différence le reste n'est que du détail.

Message cité 1 fois
Message édité par slash33 le 28-03-2006 à 17:00:30
n°1333875
skelter
Posté le 28-03-2006 à 17:28:32  profilanswer
 

slash33 a écrit :

Certes mais c'est moins parlant. Avec un moule tu captes visuellement la métaphore alors qu'en parlant de voiture tu vas parler modèle, options, performances, process de fabrication (plus complexe que celui d'un gâteau), ...


 
une classe c'est immateriel, contrairement à un moule, une classe décrit un type d'objet et elle est materiélisée uniquement à travers ses instances
dans ton exemple la classe ca serait plutot la recette du gateau, enfin c'est ce que je penses

mood
Publicité
Posté le 28-03-2006 à 17:28:32  profilanswer
 

n°1334221
slash33
Posté le 28-03-2006 à 23:04:33  profilanswer
 

Trop simple alors. Bon ben pas grave

n°1334223
0x90
Posté le 28-03-2006 à 23:07:18  profilanswer
 

Une classe peut-être un objet aussi selon le langage ;)


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1334230
nargy
Posté le 28-03-2006 à 23:09:58  profilanswer
 

Une classe peut être un objet... pour le compilateur! :)

n°1334231
slash33
Posté le 28-03-2006 à 23:10:49  profilanswer
 

L'objet de cette file n'est pas d'embrouiller ;)

n°1334233
nargy
Posté le 28-03-2006 à 23:13:26  profilanswer
 

embrouiller est un verbe employé comme complément d'objet :)

n°1334237
0x90
Posté le 28-03-2006 à 23:16:20  profilanswer
 

nargy a écrit :

Une classe peut être un objet... pour le compilateur! :)


 
en python une classe est un objet pour le programmeur au même titre qu'une instance.
Pour être précis c'est un objet pourvu d'une méthode "instancie moi". c'est pervers au point que si tu implémente la méthode "instancie moi" dans les instances d'une classe, tu peut avoir des instances instanciables...
 
mais effectivement le but n'est pas d'embrouiller donc on va zapper. Cependant voir une classe A comme un objet de classe quelquonque ayant une méthode "instancie moi" retournant un objet de classe "classe A" me parait intéressant.


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1334245
nargy
Posté le 28-03-2006 à 23:20:03  profilanswer
 

> instances instanciables...  
et c est récursif?
(je fait pas de python...)

n°1334247
skelter
Posté le 28-03-2006 à 23:21:18  profilanswer
 

il y a meme des langage tout objet comme smalltalk

n°1334250
0x90
Posté le 28-03-2006 à 23:23:31  profilanswer
 

nargy a écrit :

> instances instanciables...  
et c est récursif?
(je fait pas de python...)


 
Ca peut très bien l'être voui.
En fait rien ne garantis qu'une instanciation fasse quoique ce soit d'approchant ce qu'on attends.
( essayes un jour d'en fait, c'est assez amusant de voir ce à quoi on peut jouer avec les objets en python )


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1334258
nargy
Posté le 28-03-2006 à 23:32:19  profilanswer
 

> instances instanciables...  récursive
trop de la balle!!! ou trop le boxon aussi...

n°1334263
0x90
Posté le 28-03-2006 à 23:37:23  profilanswer
 

Un petit exemple juste comme ca :

Code :
  1. class canard(object):
  2.   def __init__(self,gen=0):
  3.      '''Chaque canard possede un attribut contenant sa generation.
  4.      et un autre pour compter le nombre de fils directs.'''
  5.      self.generation = gen
  6.      self.children = 0
  7.  
  8.   def __call__(self):
  9.      '''Voila la methode "instancie moi", elle renvoie un
  10.      nouveau canard de generation superieure.'''
  11.      self.children += 1
  12.      return canard(self.generation+1)
  13.  
  14.   def __repr__(self):
  15.      '''La surcharge de la methode pour afficher un canard'''
  16.      return 'Je suis un canard de generation %i ayant %i enfants.' % (self.generation, self.children)
  17.  
  18. # a est une instance de canard
  19. a = canard()
  20. # on instancie b a partir de a
  21. b = a()
  22. # on instancie c a partir de b
  23. c = b()
  24. # on instancie d a partir de a
  25. d = a()
  26.  
  27. print a
  28. print b
  29. print c
  30. print d


Résultat :


Je suis un canard de generation 0 ayant 2 enfants.
Je suis un canard de generation 1 ayant 1 enfants.
Je suis un canard de generation 2 ayant 0 enfants.
Je suis un canard de generation 1 ayant 0 enfants.


 
Ca peut être amusant, mais c'est pas franchement essentiel c'est sur. ( et oui, si on en abuse ca peut foutre un sacré boxon ^^ )


Message édité par 0x90 le 28-03-2006 à 23:51:29

---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1334279
nargy
Posté le 28-03-2006 à 23:48:25  profilanswer
 

ça doit être plus simple pour les arbres d objets (et les GUIs) avec ce système d auto instanciation.
 
En fait au début je pensait à a->b et b->a récursivement pour simuler les possibilités d un oscillateur en parallèle...

n°1334280
0x90
Posté le 28-03-2006 à 23:55:49  profilanswer
 

nargy a écrit :

ça doit être plus simple pour les arbres d objets (et les GUIs) avec ce système d auto instanciation.
 
En fait au début je pensait à a->b et b->a récursivement pour simuler les possibilités d un oscillateur en parallèle...


 
bha en fait, si ta méthode __call__ ne fait que créer une instance de la classe de l'objet que tu instancie, ca sert pas a grand chose ca fait que les 2 lignes suivantes font la même chose :

Code :
  1. b = a()
  2. b = a.__class__()


Autant garder la seconde version plus explicite dans ce cas la. ( __class__ est un attribut de tout les objets pointant sur l'objet classe de l'objet dont on demande l'attribut )


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1334284
nargy
Posté le 29-03-2006 à 00:00:22  profilanswer
 

ha ouais, non, a et b sont deux objets de classe différentes.
a() retourne un objet de classe B
b() retourne un objet de classe A
 
si tu fait a()()()()()()()() ça fait un oscillateur entre les classe A et B.

n°1334294
0x90
Posté le 29-03-2006 à 00:25:31  profilanswer
 

c'est ... tordu [:pingouino] (mais oui ca se fait)


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Classe : vocabulaire

 

Sujets relatifs
[C#] appel d'une méthode de classe mèreclasse de connexion SGBD mysql en dll (.so) sous linux
AS2.0 : Classe menu, votre avis ?Appelle d'une fonction via XML dans une classe
Différence entre srtucture et classemethodes abstr avec des arguments generiques dans une classe abstr
[PHP5] fonction qui liste les paramètres d'une méthode de classerattacher une classe Javascript à un élément HTML
protected dans classe templateProbleme classe heritant vector : redéfinition erase()
Plus de sujets relatifs à : Classe : vocabulaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR