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

avec Java Discussion :

Problème de définition de constrcuteur


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Etudiante en DUT RT
    Inscrit en
    Octobre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Etudiante en DUT RT

    Informations forums :
    Inscription : Octobre 2014
    Messages : 19
    Points : 7
    Points
    7
    Par défaut Problème de définition de constrcuteur
    Bonjour,

    Dans mon code, j'ai une
    The constructor Ordinateur() is undefined
    Sauf que si, c'est défini... mais peut-être pas correctement ?

    Voici ma classe Main et ma classe Ordinateur
    Nom : yrufdlsk.png
Affichages : 95
Taille : 71,1 Ko
    Nom : rgyfhsdk.png
Affichages : 99
Taille : 46,3 Ko

    Quelqu'un saurait-il m'indiquer d'où vient le problème ?

    Merci d'avance pour votre aide.

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2013
    Messages : 88
    Points : 57
    Points
    57
    Par défaut
    Oui.

    Le problème vient du fait que ton constructeur pour "Ordinateur" prend un String en argument.

    Or, tu essayes de créer une instance d'ordinateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ordianteur pc = new Ordinateur()
    sans passer de String.

    Tu dois donc ajouter le constructeur par défaut d'Ordinateur manuellement.
    Ou bien alors créer une nouvelle instance d'ordinateur en passant un String :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ordinateur pc = new Ordinateur("PC")
    Quand tu sur-charge le constructeur d'une classe, le constructeur par défaut doit être ajouté manuellement

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Points : 290
    Points
    290
    Par défaut
    Quand tu créé une classe elle auras automatiquement un constructeur sans paramètres, mais dès que tu crée ton nouveau propre constructeur le premier constructeur par défaut va être écrasé et il va falloir lé créer de nouveau. Ce que je te conseille pour ton cas c'est de créer toujours un constructeur sans paramètre puis de remplir ton objet via les setters de ces attributs. Et comme ça pour ton cas tu peux faire ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Ordinateur ordi=new Ordinateur();
    ordi.setTailleEcran(19);
    ordi.setTypePrcesseur("xxx");
    Et pour affichage c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system.out.println("Caractéristique: Taille ecran: "+ordi.getTailleEcran+" Type processeur: "+ordi.getTypeProcesseur);

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    et par pitié: copiez-collez le code, au lieu de s'emmerder à faire des screenshot de l'IDE

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Etudiante en DUT RT
    Inscrit en
    Octobre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Etudiante en DUT RT

    Informations forums :
    Inscription : Octobre 2014
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    D'accord , merci beaucoup

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Etudiante en DUT RT
    Inscrit en
    Octobre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Etudiante en DUT RT

    Informations forums :
    Inscription : Octobre 2014
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    J'ai un autre problème maintenant ... :

    Voici mon tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Materiel tabMat[][]= new Materiel [5][5];
     
     
    tabMat[1][1]= new Materiel ("1");
    tabMat[1][2]= new Materiel ("1/1/2005");
    tabMat[1][5]= new Materiel ("800x600");
     
    tabMat[2][1]= new Materiel ("2");
    tabMat[2][2]= new Materiel ("2/2/2005");
    tabMat[2][3]= new Materiel ("14'");
    tabMat[2][4]= new Materiel ("Pentium 4");
     
    tabMat[3][1]= new Materiel ("3");
    tabMat[3][2]= new Materiel ("7/7/2007");
    tabMat[3][5]= new Materiel ("1280x960");
     
    tabMat[4][1]= new Materiel ("4");
    tabMat[4][2]= new Materiel ("8/8/2007");
    tabMat[4][3]= new Materiel ("15'");
    tabMat[4][4]= new Materiel ("Simpron");
     
    tabMat[4][1]= new Materiel ("5");
    tabMat[4][1]= new Materiel ("11/1/2008");
    tabMat[4][1]= new Materiel ("17'");
    tabMat[4][1]= new Materiel ("Opteron");
     
    for (int i1=0;i1<5;i1=i1+1){
    	if (tabMat[i1]!=null){
    		System.out.println (tabMat[i1].length);
    	}
    }
    Et voici mon run :
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
    at MAIN.main(MAIN.java:63)

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations forums :
    Inscription : Juillet 2012
    Messages : 200
    Points : 342
    Points
    342
    Par défaut
    Bonjour. En Java, comme dans beaucoup d'autres langages, les tableaux sont indexés à partir de 0. Si N est le nombre d'éléments du tableau alors l'indice du dernier élément est N - 1. Donc avec la déclaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Materiel tabMat[]= new Materiel [5][5];
    Les indices des tableau vont de 0 à 4.

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Etudiante en DUT RT
    Inscrit en
    Octobre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Etudiante en DUT RT

    Informations forums :
    Inscription : Octobre 2014
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Je suis d'accord , mais du coup , j'arrive pas a savoir quoi changer ? :/

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Ben ça, par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tabMat[1][5]= new Materiel ("800x600");
    Vu que tes indices vont de 0 à 4, l'indice 5 va provoquer une erreur.

  10. #10
    Futur Membre du Club
    Femme Profil pro
    Etudiante en DUT RT
    Inscrit en
    Octobre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Etudiante en DUT RT

    Informations forums :
    Inscription : Octobre 2014
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Ah bah oui !!!! ><

    Merci ! ça marche maintenant !

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

Discussions similaires

  1. [Système] Problème de définition des variables
    Par SLAM JACK dans le forum Langage
    Réponses: 6
    Dernier message: 29/03/2006, 19h53
  2. [Configuration] Problème sur définition de constante
    Par Yobs dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 24/03/2006, 11h40
  3. Réponses: 1
    Dernier message: 21/12/2005, 19h08
  4. Réponses: 2
    Dernier message: 17/08/2005, 11h20
  5. Réponses: 22
    Dernier message: 05/07/2005, 00h04

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