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 :

Java mes propres classes


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 217
    Par défaut Java mes propres classes
    Bonjour à tous, je viens d'étudier une leçon sur comment créer ses propres classes et, évidement, j'ai un exercice d'application qui m'est proposé.
    Ce dernier consiste en un code semi complété et il m'est demandé de le finir.
    Voici la consigne :

    Vous devez compléter le programme en utilisant le mot clé this :

    Écrivez le constructeur de cette classe.
    Utilisez les méthodes accessors pour initialiser et obtenir les données de tous les champs privés de cette classe.
    Écrivez une méthode main pour tester votre programme.

    Le programme en question:
    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
    public class Sudoku {
     
        private int[][] tableaufinal;
        private int placements = 0;     // Placements représentent les emplacements possibles des chiffres de 1 à 9
        private int complexite = 0;     // Complexite :  1 (débutant), 2 (intermédiaire) et 3 (avancé)
        private String nom;             // Nom du joueur
        private int[][] grille;
        private int n;                 //nombre d'éléments dans le SUDOKU (un carré n*n, donc 3*3, 9*9, etc.)
     
        // constructeur de SUDOKU
        public Sudoku(String leNom, int n, int lesPlacements, int laComplexite) {
            // à compléter
            // ...
           initialisation();
        }
     
     
        public void initialisation () {
            // initialise tous les champs de la grille à 0
            // ...
        }
        // à compléter
     
    }
    et même si ce n'est pas grand chose, ce que j'ai fait pour l'instant:
    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
    public class Sudoku {
     
        private int[][] tableaufinal;
        private int placements = 0;     // Placements représentent les emplacements possibles des chiffres de 1 à 9
        private int complexite = 0;     // Complexite :  1 (débutant), 2 (intermédiaire) et 3 (avancé)
        private String nom;             // Nom du joueur
        private int[][] grille;
        private int n;                 //nombre d'éléments dans le SUDOKU (un carré n*n, donc 3*3, 9*9, etc.)
     
        // constructeur de SUDOKU
        public Sudoku(String leNom, int n, int lesPlacements, int laComplexite) {
            // à compléter
            // ...
        	nom = leNom;
        	placements = lesPlacements;
        	complexite = laComplexite;
     
           initialisation();
        }
     
     
        public void initialisation () {
            // initialise tous les champs de la grille à 0
            // ...
     
     
     
        }
        // à compléter
     
    }

    Je voulais savoir si vous pouviez m'aider à bien comprendre la structure de ce programme.

    Donc je résume ce que j'ai compris :
    Ici nous avons les variables qui sont initialisées.
    je comprend pas trop pourquoi on a deux tableaux qui sont générés.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        private int[][] tableaufinal;
        private int placements = 0;     // Placements représentent les emplacements possibles des chiffres de 1 à 9
        private int complexite = 0;     // Complexite :  1 (débutant), 2 (intermédiaire) et 3 (avancé)
        private String nom;             // Nom du joueur
        private int[][] grille;
        private int n;    //nombre d'éléments dans le SUDOKU (un carré n*n, donc 3*3, 9*9, etc.)
    Ensuite nous avons les constructeurs:

    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
     
    public Sudoku(String leNom, int n, int lesPlacements, int laComplexite) {
            // à compléter
            // ...
        	nom = leNom;
        	placements = lesPlacements;
        	complexite = laComplexite;
     
           initialisation();
        }
     
     
        public void initialisation () { // ici dois-je mettre  les variables initialisées à zéro?
            // initialise tous les champs de la grille à 0
            // ...
     
     
     
        }
    et finalement le dernier commentaire qui dit à compléter ligne 37.
    Je suppose que c'est ici qu'ils veulent que je crée ma méthode main.

    Merci par avance de votre aide.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Citation Envoyé par while.dede Voir le message
    je comprend pas trop pourquoi on a deux tableaux qui sont générés.
    Probablement la grille de sudoku cible (le sudoku terminé) et celle dans laquelle on joue.


    Citation Envoyé par while.dede Voir le message
    Écrivez le constructeur de cette classe.
    Utilisez les méthodes accessors pour initialiser et obtenir les données de tous les champs privés de cette classe.
    Écrivez une méthode main pour tester votre programme.

    ...
    Vous devez compléter le programme en utilisant le mot clé this :
    Citation Envoyé par while.dede Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     // constructeur de SUDOKU
        public Sudoku(String leNom, int n, int lesPlacements, int laComplexite) {
            // à compléter
            // ...
        	nom = leNom;
        	placements = lesPlacements;
        	complexite = laComplexite;
     
           initialisation();
        }
    Il manque des initialisations de variable :
    • n (occasion d'utiliser le this)
    • les tableaux (qu'on est obliger d'initialiser ici, car la dimension est passée en argument du constructeur (n)


    Citation Envoyé par while.dede Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        public void initialisation () {
            // initialise tous les champs de la grille à 0
            // ...
        }
        // à compléter
     
    }
    initialise tous les champs de la grille à 0 = remplir de 0 le tableau grille (au moins).

    Citation Envoyé par while.dede Voir le message
    et finalement le dernier commentaire qui dit à compléter ligne 37
    Je suppose que c'est ici qu'ils veulent que je crée ma méthode main.
    et finalement le dernier commentaire qui dit à compléter ligne 37 (ligne 22 dans le code que tu nous mis je suppose) :

    Commence par :
    Citation Envoyé par while.dede Voir le message
    Utilisez les méthodes accessors pour initialiser et obtenir les données de tous les champs privés de cette classe.
    puis, en effet :

    Citation Envoyé par while.dede Voir le message
    Écrivez une méthode main pour tester votre programme.
    Sous-entendu, à priori, tester les "accessors" (accesseurs) que tu a écrits..
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 217
    Par défaut
    Merci pour tout ces conseils, juste une autre question avant de me lancer, je dois avouer que je ne comprend pas trop comment fonctionne le "n" pour calculer le nombre d'éléments.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Il n'y a pas de calcul, c'est juste un paramètre.

    Si on veut une grille 3x3, on passe 3 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Sudoku("ploumploum 3x3", 3, ...)
    Pour une grille 9x9, on passe 9 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Sudoku("ploumploum 9x9", 9, ...)
    ensuite, les tableaux doivent être dimensionnés en fonction de n...

    Moi, ce que je capte pas c'est plutôt cette variable placements :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     private int placements = 0;     // Placements représentent les emplacements possibles des chiffres de 1 à 9
    J'aimerais bien avoir des exemples... parce que non seulement je ne vois pas à quoi ça sert au juste... et quel sens c'est censé avoir surtout...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 217
    Par défaut
    d'accord ok j'ai compris pour n.
    Sinon pour la variable placement, je dois avouer que je ne suis pas sur, on ne m'a pas donné plus d'info sur ce code. Mais selon moi ça doit correspondre au système de résolution du sudoku, c'est à dire, sachant qu'il ne faut pas qu'il y ait plus d'une fois sur une ligne et une colonne le même chiffre, cette variable permettrait de savoir quel chiffre mettre en respectant cette règle.

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par while.dede Voir le message
    Mais selon moi ça doit correspondre au système de résolution du sudoku, c'est à dire, sachant qu'il ne faut pas qu'il y ait plus d'une fois sur une ligne et une colonne le même chiffre, cette variable permettrait de savoir quel chiffre mettre en respectant cette règle.
    1. C'est une règle inhérente au sudoku, donc pas besoin de passer une valeur en paramètre
    2. et puis cette valeur qui serait le placement de chiffres de 1 à 9 (dixit le commentaire sibyllin), en supposant qu'il s'agisse de la règle dont tu parles, ce serait quoi ?
      • Par exemple, si je passe 18429 en paramètre, ça fait quoi ? quel impact sur la position des nombres de 1 à 9 dans une grille de n×n ? Comment écrire le code qui doit l'interpréter cette valeur pour que le même chiffre ne soit pas 2 fois dans la même ligne ou colonne.
      • Ou, ne serait-ce que 0, ou 1, par exemple ? Ou 42 ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 217
    Par défaut
    je suis en train de compléter le programme, concernant l'argument n que je dois utiliser pour le tableau je ne sais pas trop comment le formuler dans mon constructeur.
    En fait je sais le faire pour une variable comme nom, complexité etc
    Mais pour un tableau je patauge.

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

Discussions similaires

  1. [Qt Designer] Utiliser mes propres classes
    Par amAtunisian dans le forum Outils
    Réponses: 2
    Dernier message: 21/11/2011, 15h14
  2. Java voit plus mes fichiers .class
    Par 18Marie dans le forum Langage
    Réponses: 6
    Dernier message: 20/07/2006, 16h34
  3. cree mes propres message d'errere
    Par nassu dans le forum Access
    Réponses: 5
    Dernier message: 22/02/2006, 11h15
  4. [Java 5.0] class.getName()
    Par xxaragornxx dans le forum Langage
    Réponses: 9
    Dernier message: 23/01/2006, 17h19
  5. Comment interdir ps -a d'afficher mes propres processus ?
    Par elmessoussi dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 08/12/2005, 14h14

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