Exercice programmation objet

Fermé
oli2v - 20 nov. 2014 à 21:38
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 20 nov. 2014 à 21:52
Bonjour à tous,

J'ai un exercice qui consiste à créer des grilles journalières de programmes télévisuels en java. Dans une première partie, il s'agit de créer 6 classes d'émissions : Emission, Divertissement, Reportage, Fiction, Film et Serie. Les classes Divertissement, Reportage et Fiction héritent de la classe Emission et les classes Film et Serie héritent de la classe Fiction.
Ensuite il faut créer une classe Creneau qui associe un créneau horaire à une émission puis une classe Grille qui contient l'ensemble des émissions d'une journée (à chaque grille sont associés un jour et un tableau contenant les créneaux déjà définis).

Jusqu'à présent, j'ai réussi à créer les 6 classes d'émissions et la classe Creneau mais la classe Grille est moins évidente et c'est pour cela que je sollicite vos connaissances.

- Voici la classe Emission :
public class Emission {

//attributs
private String nom;
private int duree;


//constructeurs
public Emission(String und, int nb){
nom = und;
duree = nb;
}

//methodes
public void afficher(){
System.out.println("nom : " + nom);
System.out.println("duree : " + duree);
}

public int calculerFin(int h){
int fin = h + duree;
return fin;
}

public boolean verifierCreneau(int heureDebut){
Creneau[] tab = new Creneau[24];
if(tab[heureDebut] != null){
System.out.println("L'emission ne peut pas etre programmee a cette heure");
return false;
}
System.out.println("L'emission peut etre programmee a cette heure");
return true;
}
}


- La classe Creneau :
public class Creneau {

//attributs
private Emission uneEmission;
private int heureDebut;
private int heureFin ;

//constructeurs
public Creneau(Emission vuneEmission, int vheureDebut){
uneEmission = vuneEmission;
heureDebut = vheureDebut;
heureFin = uneEmission.calculerFin(heureDebut);
}

//methodes
public void afficher(){
System.out.println("Heure de debut : " + heureDebut);
System.out.println("Heure de fin : " + heureFin);
}


- et ce que j'ai essayé de faire pour la classe Grille :
public class Grille {

private final int MAX_EMI = 24;

//attributs
private int jour;
private Creneau[] creneaux = new Creneau[MAX_EMI];

//constructeurs
public Grille(int unJour){
jour = unJour;
}

//methodes
public void afficher(){
System.out.println("Jour : " + jour);
for(int i=0 ; i<MAX_EMI ; i++){
if(creneaux[i] == null){
System.out.println(i + "-"+ (i+1) + " : pas d'emission prevue");
}
}
}


Je pense qu'une grille est un tableau de créneaux mais j'ai du mal à manipuler les tableaux d'éléments qui ne sont pas de types entier ou chaine de caractère...

Merci de votre aide, j'espère que le sujet est clair.

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
20 nov. 2014 à 21:52
Bonjour,

"j'ai du mal à manipuler les tableaux d'éléments qui ne sont pas de types entier ou chaine de caractère..."
C'est exactement la même chose. Un String est un objet comme peut l'être n'importe quel objet Creneau, il n'y a vraiment aucune différence.

Visiblement ce qu'il te manque c'est le remplissage du tableau. Lorsque tu fais
new Creneau[MAX_EMI]
ça va créer un tableau avec que des null, il faut donc remplir chaque case avec un objet Creneau.

Remarque : tu aurais la même chose avec des String, par défaut ce sera des null, et avec des entiers par défaut ce sera des 0. C'est absolument pareil.
0