none
instanciation de classe RRS feed

  • Question

  • Quand une classe est un champ d'une autre classe, on peut l'instancier de différentes manières.
    J'ai lu dans un livre qu'elle pouvait se faire dans la déclaration de la classe mère. Par exemple:

    public class A
    {
    ....
    }

    public classe B
    {
    ....
    A enfant = new A();
    ...

    }

    Est-ce possible ?
    Si oui, je comprends que cela peut être intéressant si on doit utiliser A dans une méthode de B...
    Alors, quand se fait la réservation de la place mémoire de A dans le heap? durant la compilation ?
    Je ne comprends pas .

    Merci pour votre réponse,

    Fred
    vendredi 4 avril 2008 14:24

Réponses

  • Bonjour,

     

    Votre code précédent revient au même que d'instancier votre enfant dans le constructeur :

     

    Code Snippet

    public class B
    {

    A enfant;

     

    B()

    {

    enfant = new A();

    }


    }

     

     

    Pour répondre à votre question, l'instanciation se fait à la création d'objet B...

    Préférez cependant la solution de créer les objets dans le constructeur, afin d'avoir une vision centralisée et précise au niveau de l'instanciation de votre objet... (cf. Très utile au niveau du débogage).

     

    Cordialement

    vendredi 4 avril 2008 15:20
    Modérateur

Toutes les réponses

  • Bonjour,

     

    Votre code précédent revient au même que d'instancier votre enfant dans le constructeur :

     

    Code Snippet

    public class B
    {

    A enfant;

     

    B()

    {

    enfant = new A();

    }


    }

     

     

    Pour répondre à votre question, l'instanciation se fait à la création d'objet B...

    Préférez cependant la solution de créer les objets dans le constructeur, afin d'avoir une vision centralisée et précise au niveau de l'instanciation de votre objet... (cf. Très utile au niveau du débogage).

     

    Cordialement

    vendredi 4 avril 2008 15:20
    Modérateur
  • Merci pour votre réponse Mr TOURREAU,

    Je m'aperçois d'après votre réponse que l'instanciation se fera au moment de la création de B au runtime.
    Donc ce qui a été proposé dans l'ouvrage était acceptable. Cela paraît quand même bizarre comme écriture (une instruction dans une déclaration !).

    Fred
    dimanche 6 avril 2008 11:09