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 :

java et constructeurs


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 17
    Points
    17
    Par défaut java et constructeurs
    bonjour,
    j'ai une question un peu bête, mais je suis débutant en java, je veux savoir l'utilité de l'utilisation des constructeurs. par exemple:
    on considère d'abord que dormir est une méthode de la classe AnimalFamilier:
    class Poisson extends AnimalFamilier{
    Poisson monPetitPoisson = new Poisson();
    monPetitPoisson.dormir();
    }

    /pkoi on a crée un nouvel objet et pkoi on n'a pas fait tout simplement comme ca:
    Poisson.dormir();

  2. #2
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Citation Envoyé par hammouch
    bonjour,
    j'ai une question un peu bête, mais je suis débutant en java, je veux savoir l'utilité de l'utilisation des constructeurs. par exemple:
    on considère d'abord que dormir est une méthode de la classe AnimalFamilier:
    class Poisson extends AnimalFamilier{
    Poisson monPetitPoisson = new Poisson();
    monPetitPoisson.dormir();
    }

    /pkoi on a crée un nouvel objet et pkoi on n'a pas fait tout simplement comme ca:
    Poisson.dormir();
    En fait, Poisson est une classe, pas un objet. C'est pour celà, qu'il faut que tu déclare un objet Poisson avant de pouvoir lui affecté des méthodes. (Si j'ai bien tout compris moi même )
    Bonne journée
    __________________________
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".

  3. #3
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Ton code serait pas plutot comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // Déclaration d'une classe Poisson (type, catégorie, ...)
    class Poisson extends AnimalFamilier
    {
       public void dormir()
       {
       }
    }
     
    // Dans une autre classe (Aquarium par exemple)
     
    // Création d'un objet Poisson (instance, exemplaire, ...)
    Poisson monPetitPoisson = new Poisson();
    monPetitPoisson.dormir();
    Pourquoi crée t'on un objet ?
    Généralement, un objet a un état (des attributs) et un comportement (des méthodes). Les attributs sont des variables d'instances qui permettent de stocker des valeurs, c'est donc le construteur qui permet de réserver l'espace mémoire si tu veux.

    Maintenant, tu as le cas des classes qui ne contiennent aucun attributs, des classes utilitaires par exemple qui contiennent uniquement des méthodes de classes. Ces classes là n'ont pas raison d'être instanciée et tu peux donc appeler directement la méthode de classe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public final StringUtilities
    {
         private StringUtilities()
         {
            // modifie la visibilité du constructeur par défaut pour empécher l'instantiation.
         }
     
         // méthode de classe
         public static String capitalize(String input);
         {
                // ...
         }
    }
    Appel dans une autre classe : StringUtilities.capitalize("essai");

    Avec Java, certains programment uniquement avec des méthodes statiques (des procédures/fonctions) mais ce n'est plus de la programmation objet.

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 398
    Points : 710
    Points
    710
    Par défaut
    Citation Envoyé par hammouch
    bonjour,
    j'ai une question un peu bête, mais je suis débutant en java, je veux savoir l'utilité de l'utilisation des constructeurs. par exemple:
    on considère d'abord que dormir est une méthode de la classe AnimalFamilier:
    class Poisson extends AnimalFamilier{
    Poisson monPetitPoisson = new Poisson();
    monPetitPoisson.dormir();
    }

    /pkoi on a crée un nouvel objet et pkoi on n'a pas fait tout simplement comme ca:
    Poisson.dormir();
    Si tu fais ce que tu dis, cela implique que la méthode dormir est statique et que par conséquent commune à tous les poissons que tu vas créer
    et en plus ici avec la méthode dormir ca n'aurait pas trop de sens

    par contre appelée comme ici, tu precises bien que c'est l'instance monPetitPoisson de la classe Poisson qui va dormir

    ainsi, si tu crées deux petits poissons,
    Poisson poissonRouge = new Poisson();
    Poisson poissonVert = new Poisson();
    et que tu appelles ensuite poissonRouge.dormir();
    c'est uniquement le poissonRouge qui dort

    par contre tu pourrais avoir une variable statique nbPoissons dans ta classe poisson et une méthode statique nbPoissonsVivants() qui te retournerait le nombre de poissons que t'as crée
    cette méthode est alors statique car commune à tous tes poissons,
    et tu peux l'appeler comme ca : Poisson.nbPoissonsVivants()

  5. #5
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    J'adore ton exemple avec le poisson rouge et le poisson vert, c'est très explicite

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/03/2010, 23h46
  2. Constructeur de requête sql en java
    Par vinzzzz dans le forum Persistance des données
    Réponses: 3
    Dernier message: 08/09/2009, 16h18
  3. Constructeur en java
    Par Erwan M. dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 08/05/2008, 16h32
  4. probleme avec les constructeur en java
    Par amal88 dans le forum Langage
    Réponses: 11
    Dernier message: 10/03/2007, 01h32
  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