Classe sur java: entrée et sortie

Résolu/Fermé
EinsteinEmc2 - 23 févr. 2014 à 23:11
 EinsteinE=mc2 - 24 févr. 2014 à 07:29
Bonjour je ne comprend rien à ces classes sur java si quelqu'un pourrait m'aider ce serait cool , j'ai essayé de mettre des commentaires mais c'est trés trés succint..




import java.io.* ;

public class Vin {

private String nom ; // Declaration de la variable d'instance, nom de type String
private String type ; // Declaration de la variable d'instance, type de type String
private String viticulteur ; // Declaration de la variable d'instance, viticulteur de type String
private int anneeRecolte; // Declaration de la variable d'instance, anneeRecolte de type int
private int anneeMiseEnCave; // Declaration de la variable d'instance, anneeMiseEnCave de type String
private int nbBouteilles; // Declaration de la variable d'instance, nom de type String


// Constructeur permettant d'initialiser l'etat de notre objet
public Vin(String n,String t,String v,int ar,int ac,int nb) {
nom=n ;
type=t ;
viticulteur=v ;
anneeRecolte=ar ;
anneeMiseEnCave=ac ;
nbBouteilles=nb ;
}
public String donneNom() { return nom ; } ; // Accesseur permettant d'acceder en lecture à la variable nom
public String donneType() { return type ; } ; // Accesseur permettant d'acceder en lecture à la variable type
public String donneViticulteur() { return viticulteur ; } ; // Accesseur permettant d'acceder en lecture à la variable viticulteur
public int donneAnneeRecolte() { return anneeRecolte ; } ; // Accesseur permettant d'acceder en lecture à la variable anneeRecolte
public int donneAnneeMiseEnCave() { return anneeMiseEnCave ; } ; // Accesseur permettant d'acceder en lecture à la variable anneMiseEnCave
public int donneNbBouteilles() { return nbBouteilles ; } ; // Accesseur permettant d'acceder en lecture à la variable nbBouteille

public void changeNbBouteilles(int nb) { nbBouteilles = nb ; } // mutateur permettant d'acceder en écriture à la variable nbBouteille

// la methode toString retourne une description de notre objet
public String toString() {
return nom + ", " +viticulteur
+ " : " + type
+ " de " + anneeRecolte
+ " (Mis en cave en " + anneeMiseEnCave
+ ", reste " + nbBouteilles
+ " bouteilles)" ;
}

// Methode static qui retourne un int ????
static private int lisAnnee(BufferedReader in) {
int annee=lisEntier(in);
java.util.Date d = new java.util.Date();

while (annee<1800 && annee>d.getYear()) {
System.out.println("Cette année n'est pas valide, recommencez = ") ;
annee = lisEntier(in);
}
return annee ;
}


// Methode static qui retourne un int ?????
static private int lisEntier(BufferedReader in) {
int nb ;
saisie : while (true) {
try {
nb = Integer.parseInt(in.readLine());
return nb ;
}
catch(Exception e) {
System.out.println("erreur de saisie, veuillez recommencez = ");
}
}
}
// Methode static qui return un objet de type vin ??????
static public Vin saisieClavier() {
String n=null, t=null, v=null ;
int ar=1900, ac=1900, nb=1 ;

BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Saisie d'un lot de bouteilles :");
try {
System.out.print("Nom = ") ; n = stdin.readLine() ;
System.out.print("Viticulteur = ") ; v = stdin.readLine() ;
System.out.print("Type = ") ; t = stdin.readLine() ;
System.out.print("Année de récolte = ") ; ar = lisAnnee(stdin) ;
System.out.print("Année de mise en cave = ") ; ac = lisAnnee(stdin) ;
System.out.print("Nombre de bouteille = ") ; nb = lisEntier(stdin) ;
} catch(Exception e) {
System.out.println("Erreur fatale de saisie");
System.exit(1);
}

return new Vin(n,t,v,ar,ac,nb);
}
}

Je ne comprend pas ce que font exactement les classes saisieclavier , lisAnnee , lisEntier
A voir également:

2 réponses

tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 120
24 févr. 2014 à 03:22
Bonjour,

Avant tout, il faut rappeller un point important : la méhode utilisée pour lire à partir du clavier est la méthode classique, cette méthode lit des chaines de caractères seulement.

1. saisiClavier : lit les différentes informations et crée l'objet Vin.
2. lisEntier : lit la chaine de caractère et fait la conversion vers le type int.
3. LisAnne : lit un entier (elle fait appel à lisEntier) et vérifier que l'entier appartient à l'intervalle [1800, Année en cours].

Bon Courage.
0
EinsteinE=mc2
24 févr. 2014 à 07:29
Mercii pour ta réponse .
0