2016-12-07 7 views
0

最初にコードを示します。 まず、私は私のメインクラスを表示します。私は私のプログラムで終わっていない私はただ私の属性で何が保存されているかをテストしたいです。それは 'null'を保存しました。LocalDateTimeはプライベート属性のnullを安全にしますか?

私Transaktionクラスです
public class Starter { 

public static void main(String[] args) throws Exception { 

    Transaktion transaktion = new Transaktion(); 
    System.out.println(transaktion.getZeitStempel()); 
    System.out.println(LocalDateTime.now()); 

}// end of main 

}// end of class 

。この属性「zeitstempelは私にヌルを与えます。

public class Transaktion { 
/** 
* Deklaration von Attributen 
*/ 
private LocalDateTime zeitStempel; 
private Transaktionsart tart; 
private String beschreibungstext; 
private double betrag; 


public Transaktion(LocalDateTime zeitStempel, Transaktionsart tart, String beschreibungstext, double betrag) { 
    super(); 
    this.zeitStempel = zeitStempel; 
    this.tart = tart; 
    this.beschreibungstext = beschreibungstext; 
    this.betrag = betrag; 
} 

public Transaktion() { 
    // TODO Auto-generated constructor stub 
} 

public LocalDateTime getZeitStempel() { 
    return zeitStempel; 
} 

public void setZeitStempel(LocalDateTime zeitStempel) { 
    this.zeitStempel = zeitStempel; 
} 

最後のクラスは、属性「zeitStempel」を初期化するメソッドを持つMenueです。

public void transaktionslisteEinlesen(){ 

    String beschreibungstext = MeineEingabe.erfasseString("Beschreibungstext: "); 
    double betrag = MeineEingabe.erfasseDouble("Betrag:"); 
    LocalDateTime localdatetime = LocalDateTime.now(); 

    Konto konto = new Konto(); 
    Transaktion transaktion = new Transaktion(localdatetime, null, beschreibungstext, betrag); 

    konto.addTransaktion(transaktion); 
} 

他の属性のためのKonstructor nullの事実を無視してください。

私はあなたがnull値を管理するのをずっと試してみるのを助けてくれることを望みますが、私はそれが嫌いです。

よろしく グリーンティ

+0

私はこれまで、メソッドtransaktionslisteEinlesenを呼び出すようには見えません。また、あなたは何もしません空のコンストラクタを呼び出します。 – XtremeBaumer

+0

引数なしのコンストラクタは '// TODO'コメントのみを持ち、フィールドを割り当てません。フィールドは' null'と混同していますか? *本当に?!* * – Andreas

答えて

0

あなたは空のコンストラクタを使用して、そのため何にタイムスタンプを設定することはありませんしています。

setZeitStempelを呼び出すか、パラメータとともにコンストラクタを使用する必要があります。

einlesenメソッドでは、正しいコンストラクタを使用していますが、私が見る限り、実際にはこれを呼び出すことはできません。

あなたはこのような何か行うことができます:main

public Transaktion transaktionEinlesen(){ 

    String beschreibungstext = MeineEingabe.erfasseString("Beschreibungstext: "); 
    double betrag = MeineEingabe.erfasseDouble("Betrag:"); 
    LocalDateTime localdatetime = LocalDateTime.now(); 


    return new Transaktion(localdatetime, null, beschreibungstext, betrag); 
} 

そして:

public static void main(String[] args) throws Exception { 
    Transaktion transaktion = transaktionEinlesen() 

    Konto k = new Konto(); 
    k.addTransaktion(transaktion); 

    System.out.println(transaktion.getZeitStempel()); 
    System.out.println(LocalDateTime.now()); 

} 

PS:あなたはドイツ語でコードを書くべきではありませんが。あなたがプログラミングのキャリアを目指すなら、それは標準的なので、英語に慣れる必要があります。

+0

私は先生のためにそのことを知っています^^ – GreenTea

+0

しかし、私はパラメータを使ってコンストラクタを呼び出すと、これらのためのローカル変数を必要とし、initilizationがクラスmenueで起こるので、必要ありません。 – GreenTea

関連する問題