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

Java Discussion :

Constructeur en Java


Sujet :

Java

  1. #1
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 256
    Points : 290
    Points
    290
    Par défaut Constructeur en Java
    Bonjour à tous,

    Je me pose une petite question en rapport avec les constructeurs (en Java mais également dans les constructeurs en général en fait).

    Voila donc pour faire un constructeur on a par exemple le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class MaClasse {
        public MaClasse() {
            // du code
        }
    }
    et pour en créer une instance on utilise ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaClasse maClasse = new MaClasse();
    Vu que une variable reçoit une valeur du même type que son type donc ici 'maClasse' reçoit une valeur de type 'MaClasse' et que le signe '=' affecte une valeur à une variable, ça veut donc bien dire que dans la logique le 'new' va renvoyer une valeur de type 'MaClasse' (ici une instance de 'MaClasse' donc).

    Ensuite dans une déclaration de méthode on met d'abord la visibilité, ensuite le type de retour, puis le nom de la méthode, après les arguments entre '(' et ')' si nécessaire et enfin le code de cette méthode délimité par '{' et '}'.

    Donc ma question est la suivante : Vu la forme du constructeur et que le new retourne une instance de type 'MaClasse' est ce que le mot 'MaClasse' est bien le nom de la fonction qui doit obligatoirement avoir le nom de la classe ou alors en réalité est ce le type de retour d'une méthode qui n'a simplement pas de nom ?

    Je sais que l'on voit casi partout que le nom du constructeur doit avoir le même nom que la classe mais je me permet de quand même me poser la question et j'espère que quelqu'un parmit vous pourra m'éclaircir sur ce point.

    Merci d'avance et bonne journée à vous

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Dans ton exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaClasse maClasse = new MaClasse();
    Il me semble que le MaClasse est là pour spécifier que ton objet local 'maClasse' est de type 'MaClasse'

  3. #3
    Membre émérite
    Avatar de olivier.pitton
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2012
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 355
    Points : 2 814
    Points
    2 814
    Par défaut
    Plop,

    le nom de la fonction qui doit obligatoirement avoir le nom de la classe
    C'est cela.

    Les constructeurs en Java n'ont pas de type de retour, car ils renvoient simplement une référence vers l'instance créée. C'est un peu comme si tu faisais (avec un constructeur vide).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaClass.class.newInstance()
    Si tu jettes un coup d'oeil au package java.lang.reflect, tu verras les "implémentations" de tous ces types. Le constructeur est ici.

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 256
    Points : 290
    Points
    290
    Par défaut
    Merci à vous pour vos éclaircissement

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Enfin, techniquement c'est ni l'un ni l'autre. Un constructeur n'a pas de type de retour ni de nom. Il n'a besoin de ni l'un ni l'autre : c'est un constructeur, il construit une instance de la classe dans laquelle il se trouve.
    Ce n'est ni une fonction ni une méthode.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appel constructeur BigInteger (java.Math.BigInteger)
    Par charles_dg dans le forum API standards et tierces
    Réponses: 23
    Dernier message: 19/05/2011, 11h43
  2. Constructeur en java
    Par Erwan M. dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 08/05/2008, 16h32
  3. probleme avec les constructeur en java
    Par amal88 dans le forum Langage
    Réponses: 11
    Dernier message: 10/03/2007, 01h32
  4. java et constructeurs
    Par hammouch dans le forum Langage
    Réponses: 4
    Dernier message: 18/02/2007, 21h11
  5. [débutant] constructeur en java
    Par zui dans le forum Langage
    Réponses: 6
    Dernier message: 05/06/2006, 11h58

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