2017-05-11 12 views
-5

einfach Diese Datei habe ich es zu lesen und es in ein Array speichern und wollen dann später wieder die Werte nennen sie meine TextdateiWie wird der Wert eines Objekts innerhalb eines Objekts aufgerufen?

`101

12-7-2017

drucken

14-7-2017

einige Namen

00000 .. Telefon num ber

29-8-2017

1-9-2017

einen Namen

00000 .. Telefonnummer

30- 12-2017

1-1-2018

einige Namen

00000 .. Telefon number`

dies der Haupttestcode

public class test { 
public static void main(String[] args) throws ParseException, FileNotFoundException{ 
    Scanner res = new Scanner (new File("reservations.txt")); 
    int z=0; 
    do{ 
    int room_numb = res.nextInt(); 
    String cInr=res.next(); 
    String cOutr=res.next(); 
    String Fname=res.next(); 
    String Lname=res.next(); 
    String phone_numb=res.next(); 
    DateFormat df = new SimpleDateFormat("dd-MM-yyyy"); 
    Date cIn = df.parse(cInr); 
    Date cOut = df.parse(cOutr); 


     Reservation.reserv[z]=new Reservation (room_numb, cIn, cOut, new Guest(Fname, Lname, phone_numb)); 
     z=z+1; 
    }while(res.hasNext()==true); 
    Guest FLnames=Reservation.reserv[0].getguest(); 
    System.out.println(FLnames); 
} 

meine Klassen sind diese 3 Reservierung

public class Reservation { 
static Reservation[] reserv= new Reservation[200]; 
Guest guest; 
int room_numb; 
Date in, out; 
public Reservation(int room_numb, Date in, Date out, Guest g) { 
    this.room_numb = room_numb; 
    this.in = in; 
    this.out = out; 
    g= guest; 
} 
public int getroom_numb(){ 
    return room_numb; 
} 
public Date getin(){ 
    return in; 
}public Date getout(){ 
    return out; 
}public Guest getguest(){ 
    return guest; 
} 

Zimmer

public class Room { 




int room_numb; 
String indate; 

public void setRoom(int i) { 
    room_numb =i; 
} 
public int getRoom(){ 
    return room_numb; 
} 

und Gast

public class Guest { 

    String Fname; 
    String Lname; 
    String phone_number; 

    public Guest(String fname, String lname, String phone_numb){ 
     Fname=fname; 
     Lname=lname; 
     this.phone_number=phone_numb; 

     return; 
    } 
    public String getFname(){ 
     return Fname; 
    } 
    public String getLname(){ 
     return Lname; 
    } 
    public String getphone_number(){ 
     return phone_number; 
    } 

}

ich in der Lage gewesen, alle Variablen wie Raum taub/Anreisen und Check-out Datum erhalten/aber wann immer ich frage für die Gäste durch Guest FLnames=Reservation.reserv[0].getguest(); System.out.println(FLnames); es gibt mir null, was bedeutet, dass es sich nicht auf irgendetwas bezieht so kann ich String Fname=Reservation.reserv[0].getguest().getFname();

nicht verwenden

also, wie die Daten von Gast in Reservierungsarray erhalten?

Hinweis: Ich bin neu in Java so mit ma sanft bitte :) auch die sysout ist nur zum Testen im Hauptverfahren Thanks :).

Antwort

2

Ich werde nicht Ihren Code für Sie reparieren. Das ist Teil von Ihre Hausaufgaben. Hier sind jedoch ein paar Hinweise, um Sie in die richtige Richtung zu starten.

Hinweis: Schauen Sie sich genau an, wie Ihr Reservation-Konstruktor (versucht) die Felder des Objekts zu initialisieren versucht. Siehst du das Problem?

Tipp 2: Das Problem, das Sie nach oben ausgelöst ist, dass getguest()null zurückkehrt .......


Während ich Ihre Aufmerksamkeit haben, gibt es zahlreiche Stil Fehler im Code, aber die schlimmste ist Ihre Mißachtung der Java converions für Bezeichnernamen: Test nicht:

  • ein Klassenname mit einem Großbuchstaben und sein in Kamel-Fall starten müssen 210.
  • Eine Methode oder ein Variablenname muss mit einem Kleinbuchstaben beginnen und in camel-case sein; z.B. getGuest nicht getguest.
  • Wir brauchen keine ungarische Notation in Java. Der Typ einer Variablen wird in der Typdeklaration ausgedrückt.
  • Ihre Auswahl der Variablennamen ist inkonsistent und "uninspiriert".

Und "taub" ist, was passiert, wenn Ihre Finger kalt werden.

+0

Dank herausgefunden, dass dumme Fehler in Reservierung 1- ok ich es zu folgen versuchen, da es eine einfache Regel ist 2-samt und sorry :( 3-was meinst du? 4- :) meine Finger taten get tumb war in diesem arbeiten seit 3 ​​Wochen xD das ist ein kleines Stück davon Vielen Dank. – GuestA

+0

Ihre 'cIn' /' cOut' Namen sehen aus wie [Ungarische Notation] (http://jakewharton.com/just-say-no-to-hungarian-notation/). Wenn das nicht deine Absicht war, dann ... ignoriere diesen Punkt. (Aber ein paar zusätzliche Zeichen einzugeben ist keine gute Entschuldigung für schlechte Variablennamen.) –

Verwandte Themen