package codeFourni.typesBasiques

Transcription

package codeFourni.typesBasiques
Petit résumé du sujet (si mes souvenirs sont bons) du DS Machine 1 de 2A.
Tu n’auras certainement pas les mêmes noms de classes/packages/List que moi, mais dans le
principe, ça reste la même chose. (Limite du copier-coller en changeant juste les noms)
Exercice 1 : Faire des packages de la sorte :
Z:/DSM1/src
|
|------->codeFourni
|
|
|
|------>typesBasiques
|
|------->codeNomPrenom
|
|
|
|------>test
|
|------>produit
Il faut regarder les packages comme des "dossiers", le schéma au-dessus représente l'arborescence
qu'aura ton dossier src (celui qui contient les .java)
Dans l'énoncé il faut recréer les dossiers comme prévu dans l'arbo de packages.
En gros, tu crées un dossier src et les autres dossiers dedans. Comme ça :
(Avec comme première ligne à rajouter dans le code)
dossier racine des .java
package codeFourni ;
package codeFourni.typesBasiques ;
package codeNomPrenom ;
package codeNomPrenom.produit ;
package codeNomPrenom.test ;
Avec la même arborescence dans le dossier bin, sauf qu’à la place des .java, ça sera les fichiers .class
compilés par eclipse (ou autre). Ce qui doit être la question suivante (que je n’ai même pas vue …
Uhu)
Exercice 2 : Récupérer les fichiers .java sur le site et les mettre dans les bons packages comme
indiqué.
Si sur éclipse, un clic and drop dans l’arborescence des packages de la fenêtre eclipse et c’est fait.
Sinon, il faut les mettre dans les bons dossiers manuellement.
ça doit donner quelque chose comme ça : (avec les modifs de votre sujet à prendre en compte)
Ensuite, il faut ouvrir chaque fichier, et rajouter la ligne de déclaration de package en 1ere ligne
comme indiqué plus haut (Ex : package codeFourni.typesBasiques; pour le fichier Personne.java qui
doit être mis dans le package codeFourni.typesBasiques)
Exercice 3 : Créer une classe (pour moi, LesAbonnes) qui fait une Liste/Stack/autre (pour moi,
ArrayList) avec un constructeur, une méthode d’ajout et de suppression.
Voilà la mienne :
package codeGrandemangeQuentin.product;
import codeFourni.typesBasiques.*;
import java.util.ArrayList;
public class LesAbonnes{
private ArrayList<Personne> donnee;
public LesAbonnes(){
donnee = new ArrayList<Personne>() ;
}
//ajoute une personne en fin de liste
public void nvAbonne(Personne p){
donnee.add(p);
}
//retourne la première personne de la liste et la supprime
//erreur si liste vide
public Personne enleveAbo(){
Personne p = donnee.get(0);
donnee.remove(0);
return p;
}
}
/ !\ Ne pas oublier de faire les import au début :
• Ici importation de toutes les classes contenues dans codeFourni.typesBasiques (*=tout)
• Importation de la classe ArrayList du package java.util
/ !\ Pour la déclaration de package, il faut juste donner le nom du package. Mais pour l’importation, il
faut préciser le nom de la classe (sans le .java ou .class).
C’est la même chose pour les autres types de liste ou stack, pour les LinkedList c’est
java.util.LinkedList, etc … Mais Eclipse vous proposera de lui-même de l’importer quand vous
créerez la variable (ici donnee).
/ !\ C’est une liste de type « Général » (Ici, de type Personne). Il faut rajouter le type entre < >
derrière le nom de la liste lors de sa création et déclaration.
Je n’aime pas du tout la façon dont j’ai fait ma méthode enleveAbo, elle retourne des erreurs trop
facilement, mais dans le DSM, j’ai pas trouvé de méthodes « simple » dans le temps imparti, du coup,
ça donne ça ^^’. Un return donnee.get(0) ; aurait suffi selon Chevrier.
Pour chercher les méthodes de la classe Liste/Stack/autre, si vous êtes sur Eclipse, écrivez « donne. »
(ou le nom de la variable de type Liste/Stack/autre avec un point) et Eclipse vous donnera une popup
avec la liste des méthodes applicables à la variable. Sinon, recherchez sur internet ^^’
Ici, add(<type> T) ajoute la variable T a la fin de la liste. et get(int N) retourne la variable <type> T de
l’indice N.
Exercice 4 : Faire une classe de test de la classe du package typesBasiques (ici, Personne)
package codeGrandemangeQuentin.test;
import codeFourni.typesBasiques.*;
public class testPersonne{
public static void main(String[] args){
Personne p1= new Personne("Quentin", 20);
p1.afficher();
}
}
Classe de test basique.
Attention au package et à l’importation de la classe Personne (où celle qu’il faut selon l’énoncé).
Exercice 5 : Faire une classe de test de la classe contenant une liste, un stack ou autre …
package codeGrandemangeQuentin.test;
import codeGrandemangeQuentin.product.*;
import codeFourni.typesBasiques.*;
public class testLesAbonnes {
public static void main(String[] args){
LesAbonnes L1 = new LesAbonnes();
L1.nvAbonne(new Personne("Quenin", 20));
L1.nvAbonne(new Personne("Arthur", 42));
L1.enleveAbo().afficher();
L1.enleveAbo().afficher();
}
}
(OMFG, j’ai réussi à faire une faute à mon prénom dans le DSM … T_T)
Comme d’hab, ne pas oublier la ligne de déclaration du package en premier, et les imports ensuite
(ici, importation de LesAbonnes et Personne).
Pour l’appel de la méthode nvAbonne, j’ai un peu raccourcis. On peut créer la Personne avant, et
l’appeler dans l’appel de la méthode, ou la déclarer directement dans l’appel
Ces deux écritures sont équivalentes (la 2eme prend moins de place)
Personne p1 = new Personne ("Amélie", 20);
L1.nvAbonne(p1);
et
L1.nvAbonne(new Personne ("Amélie", 20));
Walap =) J’espère que ça va t’/vous aider pour le DSM.
Ps : Evitez d’apprendre par cœur et de ressortir ça tel quel, le code au-dessus est mon rendu de DSM.