2

クラス、コンストラクター、およびアクセサーを作成しました。これを行う簡単な方法があるかどうか疑問に思っていますか?

私は患者クラスを持っています:

public Patient(final String ptNo, final String ptName,
        final String procDate, final int procType, final String injury,
        final String drName) throws IOException
{
    Patient.ptNo = getPtNo();
    Patient.ptName = getPtName();
    Patient.procDate = getProcDate();
    Patient.procType = getProcType();
    Patient.injury = getPtNotes();
    Patient.drName = getDrName();
}

そして、このクラスのゲッター。

public static Patient getNewPt(String ptNo, String ptName,
        String procDate, int procType, String 
        injury, String drName) throws IOException
{
    Patient newPt = new Patient (ptNo,
            ptName, procDate, procType, injury, drName);

    return newPt;
}

したがって、新しい患者を作成できます。

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

        Patient.getNewPt(null, null, null, 0, null, null);
        // creating an array of 5 patients
        Patient patients[] = new Patient[5];

        int i = 0;

        for (i = 0; i < 5; i++)
        {
            patients[i] = Patient.getNewPt(null, null, null, i, null, null);

        }
        Patient.getOption();
    }

また、メニュー オプションを使用して新しい患者を作成します。

public static String getOption() throws IOException
{
    System.out.println("bla bla");

    option = stdin.readLine();

    switch (option)
    {
    case ("N"):
    Patient newPt = new Patient (ptNo,
            ptName, procDate, procType, injury, drName);
        break;// and so on

追加の配列メンバーを受け入れる For ループについて別の質問をしたところ、私のような初心者にとって役立つ Q&A になるかもしれないことに気付きました。

4

2 に答える 2

7

これは間違っています:

public Patient(final String ptNo, final String ptName,
        final String procDate, final int procType, final String injury,
        final String drName) throws IOException
{
    Patient.ptNo = getPtNo();
    Patient.ptName = getPtName();
    Patient.procDate = getProcDate();
    Patient.procType = getProcType();
    Patient.injury = getPtNotes();
    Patient.drName = getDrName();
}

パラメータとして渡されたすべての値を完全に無視しているためです。代わりに次のようにします。

public Patient(final String ptNo, final String ptName,
        final String procDate, final int procType, final String injury,
        final String drName) throws IOException
{
    Patient.ptNo = ptNo;
    Patient.ptName = ptName;
    Patient.procDate = procDate;
    Patient.procType = procType;
    Patient.injury = injury;
    Patient.drName = drName;
}

ここで、パラメーター値を使用してクラスのフィールドを設定しています。


2 つのフィールドを持つクラスを使用した簡単な例:

クライアント.java

public class Client {
   private String clientNo;
   private String clientName;

   public Client(String clientNo, String clientName) {
      this.clientNo = clientNo;
      this.clientName = clientName;
   }

   public String getClientNo() {
      return clientNo;
   }

   public void setClientNo(String clientNo) {
      this.clientNo = clientNo;
   }

   public String getClientName() {
      return clientName;
   }

   public void setClientName(String clientName) {
      this.clientName = clientName;
   }

   @Override
   public String toString() {
      return "Client [clientNo=" + clientNo + ", clientName=" + clientName
            + "]";
   }

}

上記のコードにはユーザーとの対話がないことに注意してください。

そして、ユーザー インターフェイス用の別のクラスです。ここでは非常に単純で、すべてがメイン メソッドにあります。

ClientTest.java

import java.util.Scanner;

public class ClientTest {
   public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);

      Client[] clients = new Client[5];

      for (int i = 0; i < clients.length; i++) {
         System.out.print("Enter Client Number: ");
         String clientNumber = scanner.nextLine();
         System.out.print("Enter Client Name: ");
         String name = scanner.nextLine();

         clients[i] = new Client(clientNumber, name);
      }

      scanner.close();

      for (Client client : clients) {
         System.out.println(client);
      }
   }
}
于 2013-11-03T23:33:42.733 に答える
0

必要ないことに気づきgetNewPtました。私はnew Patients次のように作成できます:

患者管理クラス:

public static void main(String[] args) throws IOException
{
    // creating an array of 5 patients
    Patient patients[] = new Patient[5];

    int i = 0;

    for (i = 0; i < 5; i++)
    {
        patients[i] = new Patient(null, null, null, i, null, null);

    }
    Patient.getOption();
}

など:

public static String getOption() throws IOException
{
    System.out.println("bla bla");

    option = stdin.readLine();

    switch (option)
    {
    case ("N"):
        new Patient (ptNo, ptName,
                procDate, procType, injury, drName);
        break; //and so on
于 2013-11-03T23:31:40.097 に答える