2017-05-11 14 views
-5

は単に私はこのファイルを読み込み、配列にそれを保存していた後、彼らに 私のテキストファイルを印刷するために戻って、後で値を呼び出したいオブジェクト内のオブジェクトの値を呼び出す方法は?

`101

2017年12月7日

14-7-2017

いくつかの名前

00000 ..電話NUM

29-8-2017

2017年1月9日

いくつかの名前

00000 BER ..電話番号

30- 12-2017

2018年1月1日

いくつかの名前

00000 ..電話number`

このメインテストコード

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); 
} 

私のクラスは

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; 
} 
これら3 予約されています

ルーム

public class Room { 




int room_numb; 
String indate; 

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

とゲスト

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; 
    } 

}私は、そのような部屋のしびれ/チェックイン日とチェックアウトの日付/しかしとしてすべての変数を取得することができた

私は Guest FLnames=Reservation.reserv[0].getguest(); System.out.println(FLnames);てゲストを求めるこれまでのとき それは私に何も言及していないことを意味するヌルを与えますので、私は使用できませんので です。String Fname=Reservation.reserv[0].getguest().getFname();

予約配列のゲストからデータを取得するにはどうすればいいですか?

注:私はミリアンペアで穏やかになるのJavaに新しいですしてください:)またsysoutだけのmainメソッド 感謝:)でテストのためです。

答えて

2

あなたのコードを修正するつもりはありません。それはあなたの宿題の一部です。しかし、ここで正しい方向にあなたを始めるためのヒントがいくつかあります。

ヒント:Reservationコンストラクタがオブジェクトのフィールドをどのように初期化しようとしているかを注意深く見てください。問題を参照してください?

ヒント2:あなたを倒してしまった。問題はgetguest()nullを返しているということです.......


私はあなたの注意を持っていますが、数多くのスタイルのエラーはあなたのコードでありますが、

  • クラス名は大文字で始まり、キャメルケースでなければなりません:Testない最悪は識別子名のJava converionsのご完全に無視です210。
  • メソッド名または変数名は、小文字で始まり、キャメルケースでなければなりません。例えばgetGuestgetguestではありません。
  • Javaで「ハンガリー語」表記を使用する必要はありません。変数の型は型宣言で表現されます。
  • 変数名の選択に一貫性がなく、「賞賛されません」。

「麻痺」とは、指が寒くなった場合です。

+0

おかげ:( 3 - 何を、それは単純なルール 2-同じだからOK予約 1-愚かな過ちは、私はそれに従うことをしようとすることを発見し、申し訳ありません、あなたは意味ですか? 、4- :) 私の指がしましたこれは3週間後に仕事が麻痺していたxDこれはそれの小さな部分です ありがとうございます。 – GuestA

+0

あなたの 'cIn' /' cOut'名は[ハンガリー語記法](http://jakewharton.com/just-say-no-to-hungarian-notation/)のように見えます。それがあなたの意図でないなら、その点を無視してください。 (しかし、いくつかの余分な文字を入力することは、悪い変数名の良い言い訳ではありません。) –

関連する問題