gpt4 book ai didi

java - 创建不必要的 getter

转载 作者:行者123 更新时间:2023-12-02 01:03:11 24 4
gpt4 key购买 nike

我创建了一个类、构造函数和访问器。我想知道是否有更简单的方法来做到这一点?

我有一个 Patient 类:

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

还有这个类的 getter。

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 loop accepting an extra array member然后意识到一些我认为可能对像我这样的新手有用的问答。

最佳答案

这是错误的:

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

您可以在此处使用参数值设置类的字段。

<小时/>

使用具有两个字段的类的简单示例:

客户端.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);
}
}
}

关于java - 创建不必要的 getter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19759532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com