poupou014
Messages postés7Date d'inscriptionmardi 6 mai 2008StatutMembreDernière intervention 7 juin 2011
-
7 juin 2011 à 08:58
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020
-
8 juin 2011 à 10:57
Bonjour, je voudrais essayer de contacter le fonction getTents() qui est dans la classe Tent est qui est heritee de Booking, qui est lui meme dans un ArrayList qui est cree dans bookingManager.
Voici la sub classe Tent:
public class Tent extends Booking{
private int tents;
public Tent(){
}
public Tent(int bookingID, int customerID, java.util.GregorianCalendar startDate, int duration, int tents){
super(bookingID, customerID, startDate, duration);
this.tents = tents;
System.out.println("Tent created");
}
public String toString(){
return ("Tent" + bookingID + customerID + startDate + duration + tents);
}
public int getTents() {
return tents;
}
public void setTents(int tents) {
this.tents = tents;
}
}
Voici la classe Booking:
\
public class Booking {
int bookingID;
int customerID;
java.util.GregorianCalendar startDate;
int duration;
public Booking(int bookingID, int customerID, java.util.GregorianCalendar startDate, int duration)/* throws bookingIDException, customerIDException, startDateException, durationException */{
System.out.println("Booking reussi");
this.bookingID = bookingID;
this.customerID = customerID;
this.startDate = startDate;
this.duration = duration;
public Booking(){
}
public String toString(){
return(bookingID +" "+ customerID +" "+ startDate +" "+ duration);
}
public int getBookingID() {
return bookingID;
}
public void setBookingID(int bookingID) {
this.bookingID = bookingID;
}
public int getCustomerID() {
return customerID;
}
public void setCustomerID(int customerID) {
this.customerID = customerID;
}
public java.util.GregorianCalendar getStartDate() {
return startDate;
}
public void setStartDate(java.util.GregorianCalendar startDate) {
this.startDate = startDate;
}
public int getDuration() {
return duration;
}
public void setDuration(int duration) {
this.duration = duration;
}
}
Voici la classe BookingManager:
import java.io.*;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.Scanner;
import java.util.StringTokenizer;
public class BookingsManager {
String path;
public ArrayList bookings = new ArrayList();
boolean poweredSite;
//ArrayList bookingList = new ArrayList();
public BookingsManager(String path) throws FileNotFoundException, ParseException {
int bookingID, customerID, duration, tents, occupancy;
Scanner scanner = new Scanner(new File(path));
while (scanner.hasNext()) {
String ligne = scanner.nextLine();
System.out.println(ligne);
StringTokenizer st = new StringTokenizer(ligne, "|");
while(st.hasMoreTokens()){
String bookingType = st.nextToken();
String SbookingID = st.nextToken();
bookingID = Integer.parseInt(SbookingID);
String ScustomerID = st.nextToken();
customerID = Integer.parseInt(ScustomerID);
String SstartDate = st.nextToken();
String []lineStartDate = SstartDate.split( "/");
int startday= Integer.parseInt(lineStartDate[0]);
int startmonth= Integer.parseInt(lineStartDate[1]);
int startyear= Integer.parseInt(lineStartDate[2]);
java.util.GregorianCalendar startDate = new GregorianCalendar(startyear,startmonth,startday);
String Sduration = st.nextToken();
duration = Integer.parseInt(Sduration);
String SpoweredSite = st.nextToken();
poweredSite = Boolean.parseBoolean(SpoweredSite);
String Stent = st.nextToken();
tents = Integer.parseInt(Stent);
String Soccupancy = st.nextToken();
occupancy = Integer.parseInt(Soccupancy);
System.out.println(bookingType +" "+ bookingID +" "+ customerID +" "+ startDate.get(startDate.DAY_OF_MONTH)+" "+startDate.get(startDate.MONTH)+" "+ startDate.get(startDate.YEAR) +" "+ duration +" "+ poweredSite +" "+ tents +" "+ occupancy);
if (bookingType.equals("Tent")){
bookings.add(new Tent(bookingID, customerID, startDate, duration, tents));
}
if(bookingType.equals("Caravan")){
bookings.add(new Caravan(bookingID, customerID, startDate, duration, poweredSite));
}
if (bookingType.equals("Cabin")){
bookings.add(new Cabin(bookingID, customerID, startDate, duration, occupancy));
}
}//End While
}//End While
//System.out.println(bookingList);
}
public void addBookingManager(Booking[] booking[]){
}
public void updateBooking (Booking[] booking[]){
}
public void deleteBooking (){
}
public void toFile(){
//toString
}
public Booking findBooking(int bookingID){
int results = 0;
int i = 0;
for(i=0; i<bookings.size(); i++){
if(bookings.get(i).getBookingID()==bookingID){
results=i;
}
}
return bookings.get(results);
}
public int totalBookings(Booking type){
int compteur=0;
for(int i=0; i<bookings.size(); i++){
if (type.getClass().equals(bookings.get(i).getClass())){
compteur++;
}
if (type.getClass().equals(new Booking().getClass())){
compteur = bookings.size();
}
}
return compteur;
}
public int totalBookings(Booking type, java.util.GregorianCalendar date){
int compteur=0;
for(int i=0; i<bookings.size(); i++){
if (type.getClass().equals(bookings.get(i).getClass()) ){
compteur++;
}
if (type.getClass().equals(new Booking().getClass()) ){
compteur = bookings.size();
}
}
return compteur;
}
}
J arrive a recuperer mes variables de Booking en fesant ex:
bookingManager.bookings.get(i).getCustomerID()
Mais pour recuperer la variable dans Tent je n ai aucune idee.
poupou014
Messages postés7Date d'inscriptionmardi 6 mai 2008StatutMembreDernière intervention 7 juin 2011 7 juin 2011 à 09:24
Merci pour ta reponse.
J arrive a recuperer CustomerID mais je narrive pas a recuperer la fonction getTents() a partir du GUI.
Il me faudrait une ligne de code pour appeler la fonction qui est dans Tent et pas dans booking, car c est une variable pour la classe Tent.
bookingManager.bookings.get(i).getTents() ;
Cela ne marche pas car getTents n'est pas reconnu dans Booking mais uniquement dans Tent.
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 7 juin 2011 à 09:59
Il faudrait peut être trouver une méthode plus appropriée en utilisant le polymorphisme, mais je ne peux pas t'en dire plus, je ne sais pas ce que tu veux faire
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 7 juin 2011 à 10:01
Peut être faudrait il passer ton attribut bookings dans BookingsManager en private et faire un getter dessus. De plus, tu pourrais le déclarer en List au lieu de ArrayList
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 7 juin 2011 à 12:04
tu peux utiliser instanceof comme je l'ai fait dans l'exemple plus haut, c'est fait pour ca.
Ce n'est pas terrible comme programmation objet (mais pour un débutant, ca passe). Tu as des problèmes de conception.
Si tu m'expliques ce que tu veux faire avec ces différentes classes, je te donne une solution plus correcte. Si ca te convient de faire comme ca pour l'instant, ca me va aussi.