2017-01-03 10 views
-1

現在、JavaでCalenderをコーディングしようとしています。 私は3つのクラスを作成しました:ユーザは自分のカレンダー(java)で日付を作成するにはどうすればいいですか?

1日(年、月を....含ん)

2. Terminは(人、場所、クラスDate ... +へのオプションが含まれています

3.メインクラスメニューを含む私のメインクラス。

私の問題は、自分でオブジェクトを作成する必要があるため、ユーザーが自分の日付を作成する方法がわからないということです。あらかじめThx! 1は、予定を作成するには(あなたのケースでTerminと呼ばれる)予定を作成する必要があるので、予定を作成するには、インスタンス・メソッドを作成

public class Termin { 
private String mBetreff, mOrt, mNamen; 
private Datum mBeginn, mEnde; 

Termin(String betreff, String ort, String namen, Datum beginn, Datum ende) { 
    mBetreff = betreff; 
    mOrt = ort; 
    mNamen = namen; 
    mBeginn = beginn; 
    mEnde = ende; 
} 

public void erstellen() { 
    Scanner read = new Scanner(System.in); 
    System.out.println("Gib 1. Betreff 2. Ort 3. Namen 4. Beginn 5. Ende ein"); 
    mBetreff = read.nextLine(); 
    mOrt = read.nextLine(); 
    mNamen = read.nextLine(); 
} 

public String toString() { 
    return "Betreff: " + mBetreff + "\nOrt: " + mOrt + "\nTeilnehmer: " + mNamen + "\nEs beginnt am " + mBeginn 
      + " und endet am " + mEnde; 
} 
} 

public class Datum { 
private int mJahr, mTag, mMonat, mStunden, mMinuten; 

Datum(int jahr, int monat, int tag, int stunden, int minuten) { 
    mTag = tag; 
    mJahr = jahr; 
    mMonat = monat; 
    mStunden = stunden; 
    mMinuten = minuten; 
} 

public String toString() { 
    return "\n" + mTag + "." + mMonat + "." + mJahr + " um " + mStunden + ":" + mMinuten; 
} 

public void datumEingeben() { 
} 
} 
+0

なものを引数名としてあなたのコードの重要な部分を、翻訳してくださいスタックオーバーフロー。英語ベースです。 –

答えて

0

は一種の...奇妙です。 1つの可能性はbuilder patternです。パブリック静的内部ビルダークラスを持つことにより、あなたはプライベートコンストラクタ(複数可)を設定し、そのビルダーの使用を強制することができます

public class Main { 

    private int value; 

    private Main(int value) { 
     this.value = value; 
    } 

    public int getValue() { 
     return (this.value); 
    } 

    public static class MainBuilder { 

     boolean valueWasSet; 
     int value; 

     public MainBuilder() { 
      this.valueWasSet = false; 
      this.value = -1; 
     } 

     public void setValue(int value) { 
      this.value = value; 
      this.valueWasSet = true; 
     } 

     public Main build() { 
      if (!this.valueWasSet) { 
       throw new IllegalStateException("value must be set before a Main can be build."); 
      } 

      return (new Main(this.value)); 
     } 
    } 
} 

(これは、特定の主張する方法についてのコアメカニズムを示すために単純化されたスケッチです値がMainBuilderを通じてMainを構築する前に設定されている

Mainを構築するプロセスは、次のようになります。

MainBuilder builder = new MainBuilder(); 

builder.setValue(100); 
// all following Main's will have a value of 100 
Main mainOne = builder.build(); 
Main mainTwo = builder.build(); 

builder.setValue(200); 
// all following Main's will have a value of 200 
Main mainThree = builder.build(); 
Main mainFour = builder.build(); 
+0

ありがとうございます!私はあなたの助けに感謝します – Coldvirus

関連する問題