IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

instance de classe ou objet?


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Par défaut instance de classe ou objet?
    salut,
    j'aimerais connaitre la différence entre une instance de classe et un objet de cette classe (je sais qu'un objet est une instance de la classe mais à part ça y'a t il une différence?)

    2ème question:
    en java, lors de l'héritage pourquoi n'est il pas possible de supprimer les attributs de la sous classe?

  2. #2
    Membre chevronné
    Avatar de bricecol
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 364
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // J'instancie un object nommé d de type Date
    Date d = new Date();
     
    // Je récupère via la méthode newInstance, un object de type Date
    Date d = Date.class.newInstance()
    Il n'y a pas de différence au niveau du résultat, mais la deuxième solution est utilisée
    en introspection.

    L'instance d'une classe ne veut rien dire.
    Tu peux récupèrer une classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Class c = Class.forName(nomDeMaClasse);
    Et t'en servir ensuite pour instancier des objets.

    Pour ta deuxième question, lorsque que tu utilise l'héritage, cela veut dire que tu veux factoriser des traitements, des informations ou les deux. Si tu ne veux pas utiliser un attribut de la classe mère dans ta classe fille, alors ne l'utilise pas, mais si tu veux le supprimer, c'est que tu n'as pas bien pensé tes classes.

  3. #3
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Par défaut
    1) Pour moi c'est la même chose. Instance d'une classe veut dire un objet créé ayant cette classe.

    Une instance a une adresse mémoire, et peut être créé ou effacer. Une classe, on va dire que c'est figé.

    2) C'est effectivement parfois génant. Mais en général, c'est de la mauvaise conception. Si on crée dans 4 fichiers différents les classes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
     
    public class Bruit {
     
    }
     
    public class Hurlement extends Bruit{
     
    }
     
    public class Animal {
     
        String pasDeCerveau;
        Bruit monBruit;
     
        public Bruit getBruit() {
            return new Bruit();
        }
     
        public String getPasDeCerveau() {
            return pasDeCerveau;
        }
     
    }
     
     
    public class Singe extends Animal{
     
       String grosCerveau;
        Hurlement monBruit;
     
        @Override
        public Hurlement getBruit(){
            return new Hurlement();
        }
     
     
        /**
         * @deprecated 
         */
        @Override
         public String getPasDeCerveau() {
            return pasDeCerveau;
        }
     
        public String getGrosCerveau() {
            return grosCerveau;
        }
    }
    Pour la transformation du Bruit en Hurlement, le seul problème que l'on a, c'est que Netbeans met une remarque "Fields hide another Fields". On utilise correctement la notion d'héritage.

    Par contre pour la transformation en pasDeCerveau -> GrosCerveau, c'est que la conception est à la base mauvaise dans la classe Animal.

  4. #4
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Citation Envoyé par sydrous Voir le message
    salut,
    j'aimerais connaitre la différence entre une instance de classe et un objet de cette classe (je sais qu'un objet est une instance de la classe mais à part ça y'a t il une différence?)
    Même signification pour ma part. Instance à le mérite d'exprimer le méta dont est issue l'instance: un objet est instance de classe, une classe est instance de meta-classe, etc..

    Citation Envoyé par sydrous Voir le message
    2ème question:
    en java, lors de l'héritage pourquoi n'est il pas possible de supprimer les attributs de la sous classe?
    Pour ne pas violer une interprétation du principe de substitution de Liskov qui veut que tout instance ancêtre puisse être remplacée par un descendant.

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/05/2010, 16h48
  2. instance de classe(objet) et delete
    Par boblaterreur dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/04/2010, 13h32
  3. Réponses: 3
    Dernier message: 24/06/2009, 21h08
  4. [POO] Tableau d'objets B dans une instance de class A
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 24/05/2006, 09h52
  5. [FLASH MX2004] Valeurs d'objets instances de classes...
    Par amietbeach dans le forum Flash
    Réponses: 2
    Dernier message: 25/02/2006, 15h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo