|
Bas de page | |
---|---|
Auteur | Sujet : question consernant un code contenant : instanceof |
Publicité | Posté le 02-02-2008 à 20:54:11 |
charly007 | J'inverse les questions :
Message édité par charly007 le 02-02-2008 à 21:10:58 |
robocop333 | Donc o est une instance de Maclass. Mais puisqu'il est passé en argument à la fonction afficheChaine(Object o), il est copié dans le paramètre "Object o" et c'est autorisé car Object est une class mère de Maclasse (puisque tout objet hérite implicitement d'Object). Et puisque la méthode getChaine() est définie pour seulement la class MaClasse, Je dois faire un cast de l'objet o vers MaClasse pour pouvoir utilisé cette methode. ( et ceci car si une class fille hérite d'une class mère ) et qu'on copie un objet de type "classFille" dans un objet déclarer de type "classMère", alors seulement les méthode -et attributs- hérité par la fille de la mère, sont copié ). Est ce que ce que je raconte est correct ou ya quelque chose que j'ai pas compris ? Merci Message édité par robocop333 le 03-02-2008 à 10:07:02 |
Bidem | C'est presque bon :
|
BifaceMcLeOD The HighGlandeur | Pour comprendre cela, il faut réaliser que Java est un langage compilé et à typage fort, pour lequel l'essentiel du typage est vérifié à la compilation et non à l'exécution (contrairement à la plupart des langages objets interprétés).
|
robocop333 | Ok, je vois mieux now. J'ai une autre petite question qui n'as pas de relation avec la précédente: Y a il une différence entre faire:
Message édité par robocop333 le 05-02-2008 à 22:09:52 |
BifaceMcLeOD The HighGlandeur | On suppose bien sûr ici que toto est déclaré de type MaClasse.
tu commences par créer un nouvel objet (opération new), et le new te retourne l'adresse mémoire du nouvel objet créé... qui n'est pas le même objet que celui de toto, puisque, on vient de le dire, il est nouveau.
|
robocop333 | Merci BifaceMcLeOD, je dois avoué que c'est une très bonne explication. Je vois donc, pour le 1er cas: toto et truc vont pointé sur le même objet.
Je croie que c'est la même chose puisqu'on utilise une chaine constance "Hello", pour créer une instance pour l'objet texte, dans les deux cas. Mais je ne suis pas sure. Message édité par robocop333 le 05-02-2008 à 22:11:03 |
BifaceMcLeOD The HighGlandeur | Dans ce genre de situation, je te conseille vivement de faire le test toi-même : écris une petite classe Java qui contient juste un main() avec les quelques instructions qui répondent à ta question. Même après des années d'expérience, tu verras que tu continueras à apprendre des trucs comme ça en Java (ou d'autres environnements).
dans le principe, texte1 et texte2 devraient référencer des objets différents (et de même contenu). Mais dans le cas particulier de String, la JVM optimise tout ça, détecte qu'il s'agit de la même valeur constante dans les 2 cas. Résultat : texte1 et texte2 se retrouvent à référencer la même instance de String. |
Sujets relatifs | |
---|---|
question site | Retrouver le code sourrce |
Les structures - petite question | une petite question |
[crystal reports] code 39? =>pb IFieldObject | une question importante |
Listes et sort [résolu] | [Résolu][ASP .NET][C#] Désactiver l'impersonation en code behind |
Petite question SQLienne --> organisation des tables | Question SQL |
Plus de sujets relatifs à : question consernant un code contenant : instanceof |