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

Langage Java Discussion :

[Certification] has-a et is-a


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 12
    Par défaut [Certification] has-a et is-a
    Bonjour étant entrain de travailler sur le passage de la certification scjp, je me pose une question ..

    si :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    class A {}
    class B extends A {}
    class C { B b; }
    class D extends C {}
    Dans une question posé dans la certification, avec toutes les nuances sur les mots que cela implique, que peut on dire de ceci :

    Etant donné que "D is-a C", peut on dire que "D has-a B" ? Peut on dire que "D has-a A" ?

    ou alors non c'est "D is-a C" et "C has-a B" mais "D has-a B" est faux.
    De plus es-ce que la réponse pourrait être différente si B est marqué private, protected ou public ?

    Merci !
    svp indiquez dans les réponses si vous êtes sûre de vous .. =)

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    faudrait voir ce qu'il entendent par "has a". D contient bien un B (et a forciori un A), mais n'y a pas nécessairement accès puisqu'il est en visibilité par défaut.

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 12
    Par défaut
    Oui .. donc on peut dire que si B est accessible par D, "D has-a B" est vrai.
    Et que faudrait il répondre si par exemple B est en private mais accessible via un getter protected ou public ??

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    vu qu'on ne connait pas la définition de "has a", impossible à dire. Dans l'absolu, il est dans la classe parent, donc dans toute classe enfant, même si l'enfant n'y a pas accès. En même temps, on peux dire aussi que aucune de ces classes n'a de B puisqu'il n'y a pas une seule fois attribution d'une valeur à ce champ.

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    vu qu'on ne connait pas la définition de "has a", impossible à dire. Dans l'absolu, il est dans la classe parent, donc dans toute classe enfant, même si l'enfant n'y a pas accès. En même temps, on peux dire aussi que aucune de ces classes n'a de B puisqu'il n'y a pas une seule fois attribution d'une valeur à ce champ.
    "has-a" et "is-a" sont du vocabulaire d'ordre sémantique, niveau qui doit rester indépendant du langage d'implémentation, les problèmes de visibilité sont de niveau syntaxique donc dépendant du langage.

    En sémantique, l'héritage transmet les propriétés sans exclusion mais par contre peut introduire des restrictions sur les propriétés héritées. Mais dans ce cadre les classes sont déduites des propriétés et non imposées par une syntaxe déclarative comme dans un langage typé.

    Le mélange des deux perspectives dans le vocabulaire de la question ne peut que semer la confusion.

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ce serait peut etre bien d'avoir l'intégralité de la question (en anglais).

    Les seule notion de "has a" que j'aie trouve dans le JLS qui nous concerne disent qu'une classe "has a member of type B" et pas "has a B"

Discussions similaires

  1. Probleme avec glassfishV3 (Certificate has expired)
    Par glassfish dans le forum NetBeans
    Réponses: 0
    Dernier message: 25/03/2010, 13h15
  2. Certification 70-228 sql server 2000
    Par Cotentin dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/11/2003, 09h01
  3. Erreur: Control " has no parent windows
    Par bob8181_2000 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 12/10/2003, 20h39
  4. Réponses: 6
    Dernier message: 30/07/2003, 14h59
  5. Réponses: 4
    Dernier message: 09/05/2003, 16h20

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