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 :

Passer un tableau en paramètre dans un constructeur


Sujet :

avec Java

  1. #1
    Membre averti
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 502
    Points : 300
    Points
    300
    Par défaut Passer un tableau en paramètre dans un constructeur
    Hello,

    Je débute depuis quelques jours en java et j'ai un exercice qui me demande de passer un tableau de 10 entiers qui seront saisis par l'utilisateur pour en faire la moyenne

    Je galère énormément, voici le début de mon code ou j'ai essayé de créer une méthode qui remplit le tableau et son constructeur. Comment faire pour passer le tableau créé par l'utilisateur dans l'instance de ma classe ?

    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
     
    import java.util.Scanner;
     
    public class TableauNombre {
    	int[] arrayNote = new int[10];
     
    	public TableauNombre(int[] arrayNote) {
    		this.arrayNote = arrayNote;
    	}
     
    	public void CreateArray() {
    		Scanner scan = new Scanner(System.in);
     
    		for (int i = 0; i < arrayNote.length; i++) {
                    System.out.println("Saisir note n°"+ (i+1)+" :");
     
    			 arrayNote[i] = scan.nextInt();
    		}
    	}
    }
     
    Merci d'avance pour votre aide

  2. #2
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    Salut,
    pour cela, il faudra le creer a l´exterieur(dans la main par exemple) avant d´instancier ta classe.

    Eric

  3. #3
    Membre averti
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 502
    Points : 300
    Points
    300
    Par défaut
    Salut Eric, merci de me répondre,

    Je ne saisis pas trop, tu veux dire qu'il faut que je saisisse un tableau en dur dans l'instance (dans le main) ?
    du type TableauNombre tableau1 = new TableauNombre({1,23...});

    Désolé mais je suis vraiment perdu

  4. #4
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 679
    Points
    1 679
    Par défaut
    Citation Envoyé par olivier252 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class TableauNombre {
        int[] arrayNote = new int[10];
     
        public TableauNombre(int[] arrayNote) {
            this.arrayNote = arrayNote;
        }
    Bonjour,

    Le tableau est-il rempli hors de la classe ou dans la classe ? Dans le code indiqué, il y a à la fois une création du tableau par le new et la transmission au constructeur.

  5. #5
    Membre averti
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 502
    Points : 300
    Points
    300
    Par défaut
    Bonjour Cincinnatus, merci pour ta réponse

    En fait je ne sais pas comment aborder l'exercice car à la base je ne comprends pas bien l'énoncé.

    Il est dit " Définir une classe TableauNombres de façon à étudier des séries de 10 nombres positifs. La classe doit être dotée d'un constructeur ayant la capacité d'allouer la place pour un tableau de 10 nombres et de permettre à l'utilisateur de donner les 10 valeurs numériques qui l'intéressent. "

    Je pense qu'il faut créer une méthode qui permet de saisir les 10 nombres par l'utilisateur, donc dans la class main, contrairement à ce que j'ai fait
    Une fois ce tableau créée, il faudrait que je puisse le passer dans l'instance de mon constructeur pour pouvoir ensuite faire la moyenne. C'est là que je bute en fait

    Au plaisir de te lire

  6. #6
    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
    Hello,

    c'est quoi ça la classe main ? En tout cas, ça ne ressemble pas à ce qui est demandé.

    - Il est dit "La classe doit être dotée d'un constructeur ayant la capacité d'allouer la place pour un tableau de 10 nombres"

    C'est le constructeur qui doit allouer le tableau. Il ne faut donc pas lui passer quoi que ce soit. Le constructeur doit créer un tableau de 10 nombres. Il doit le faire de lui-même, en ne se basant sur rien.

    - Il est dit "et de permettre à l'utilisateur de donner les 10 valeurs numériques qui l'intéressent"

    C'est donc le rôle du constructeur également de recueillir les valeurs fournies par l'utilisateur.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre averti
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 502
    Points : 300
    Points
    300
    Par défaut
    Bonjour Thelvin, merci pour tes explications qui m'ont éclairci les idées
    Je mets mon code juste pour savoir si il répond bien au cahier des charges de l'énoncé
    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
     
    package fr.apside.POO.exercice3;
    import java.util.Scanner;
     
     
    public class TableauNombre {
    	Scanner scan = new Scanner(System.in);
    	private int[] arrayNote = new int[10];
    	private double somme;
     
     
    	public TableauNombre() {
    		for (int i = 0; i<arrayNote.length ; i++) {
    			System.out.println("Entrez la note n°"+ (i+1)+" :");
    			arrayNote[i] = scan.nextInt();
    		}
    	}
     
     
    	public double arrayMoyenne() {
    		for (int i = 0; i<arrayNote.length; i++) {
    			somme = somme + arrayNote[i];
    		}
    		return somme/arrayNote.length;
    	}
    }
    Et puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    package fr.apside.POO.exercice3;
     
    public class MainTableauNombre {
     
    	public static void main(String[] args) {
    		TableauNombre array1 = new TableauNombre();
    		System.out.println(array1.arrayMoyenne());
    	}
    }
    Je comprends mal le rôle du consstructeur : je pensais qu'il est uniquement crée pour initialiser des attributs lors de l'instance de la classe, mais je me trompe. J'espère que tout ça va se décanter. Je suis en ce moment une formation accélérée et j'ai quelques fois du mal à suivre, bien qu'ayant tatonné en faisant un peu de php.

    Merci en tout cas à la communauté, j'apprends beaucoup grace à ce forum, je risque de revenir à l'occasion. Bon we à tout le monde

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/12/2009, 12h38
  2. Réponses: 1
    Dernier message: 23/05/2006, 14h36
  3. [JpGraph] Passage d'un tableau en paramètre dans une URL pour JPgraph
    Par crazydiver_e2 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 16/01/2006, 16h15
  4. Passer un tableau en parametre dans une fonction js
    Par hellmaster78 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/06/2005, 14h35
  5. [C#] Passer un dataset en paramètre dans un WinForm enfant
    Par iDaaX dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/01/2005, 21h55

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