Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建不必要的getter_Java_Getter - Fatal编程技术网

Java 创建不必要的getter

Java 创建不必要的getter,java,getter,Java,Getter,我创建了一个类、构造函数和访问器。我想知道有没有更简单的方法 我有一个病人课程: 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();

我创建了一个类、构造函数和访问器。我想知道有没有更简单的方法

我有一个病人课程:

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

我又问了一个问题,然后意识到一些我认为可能对像我这样的新来者有用的问答。

我意识到我不需要
getNewPt
。我可以创建
新患者
,如下所示:

病人管理课程:

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 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 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;
}
在这里,您使用参数值设置类的字段


一个简单的例子说明了我的意思,即使用一个包含两个字段的类:

Client.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);
      }
   }
}
import java.util.Scanner;
公共类客户端测试{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
客户[]客户=新客户[5];
for(int i=0;i
@Skippy:我不需要看那些代码就知道你的构造函数受了致命伤。无论使用何种方法,都完全忽略了参数。同样,不要这样做,不要要求参数并忽略它们。@Skippy:是的,这可能是真的。另外,您也不想在注释中发布代码,因为它会丢失格式并且很难阅读。@Skippy:为什么要做什么?您可能希望通过添加相关代码、观察到的行为和预期行为来编辑问题。不要删除问题中已经存在的代码,因为如果删除,将使我们的答案对未来的访问者毫无意义。@Skippy:如果这个问题已经得到回答,那么是的,创建一个新问题。否则,请更新您当前的问题。@Skippy:请参阅“编辑”以了解我的意图的简单示例。您可能对工厂模式感兴趣@Jeroenvanevel:这比他目前的水平要高。我们现在讨论的是基本的简单构造函数、getter和setter。工厂将不得不等待一个月或五个月。如果有什么安慰的话,我在比你大的年纪就学会了Java。这在我们这个年龄是可以做到的,所以不要放弃。