构造函数错误(JAVA)
因此,我能够让我的第一个构造函数工作,但不是我的第二个p2构造函数。对于p2,我试图显示string,string,string,double,double,string,string。目前代码显示一个错误,字符串不能转换为double,但我不知道我是怎么做的 这是我的主要代码。 一揽子研究健康服务构造函数错误(JAVA),java,constructor,Java,Constructor,因此,我能够让我的第一个构造函数工作,但不是我的第二个p2构造函数。对于p2,我试图显示string,string,string,double,double,string,string。目前代码显示一个错误,字符串不能转换为double,但我不知道我是怎么做的 这是我的主要代码。 一揽子研究健康服务 public class Studenthealthservices { public static void main(String[] args) { EMR
public class Studenthealthservices {
public static void main(String[] args) {
EMR p1 = new EMR("Colin","10-22-74");
System.out.printf(p1.toString());
EMR p2 = new EMR("Anquan","9-30-77", "stomach ache","98", "120", "stress", "Tylenol");
System.out.printf(p2.toString());
}}
public class EMR {
private String name;
private String dob;
private String rfv;
private double bodyt;
private double hr;
private String diag;
private String pmeds;
public void setName(String name) {
this.name = name;
}
public EMR (String name, String dob) {
this.name = name;
this.dob = dob;
}
public String getName(){
return name;
}
public EMR (String name, String dob, String rfv, double bodyt, double hr, String diag, String pmeds){
this.name = name;
this.dob = dob;
this.rfv = rfv;
this.bodyt = bodyt;
this.hr = hr;
this.diag = diag;
this.pmeds = pmeds;
}
public String getDob() {
return dob;
}
public void setDob(String dob) {
this.dob = dob;
}
public String getRfv() {
return rfv;
}
public void setRfv(String rfv) {
this.rfv = rfv;
}
public double getBodyt() {
return bodyt;
}
public void setBodyt(double bodyt) {
this.bodyt = bodyt;
}
public double getHr() {
return hr;
}
public void setHr(double hr) {
this.hr = hr;
}
public String getDiag() {
return diag;
}
public void setDiag(String diag) {
this.diag = diag;
}
public String getPmeds() {
return pmeds;
}
public void setPmeds(String pmeds) {
this.pmeds = pmeds;
}
@Override
public String toString(){
return"name :" + this.name +"Date of Birth:" + this.dob;
}
}
这是我的EMR课程代码
一揽子研究健康服务
public class Studenthealthservices {
public static void main(String[] args) {
EMR p1 = new EMR("Colin","10-22-74");
System.out.printf(p1.toString());
EMR p2 = new EMR("Anquan","9-30-77", "stomach ache","98", "120", "stress", "Tylenol");
System.out.printf(p2.toString());
}}
public class EMR {
private String name;
private String dob;
private String rfv;
private double bodyt;
private double hr;
private String diag;
private String pmeds;
public void setName(String name) {
this.name = name;
}
public EMR (String name, String dob) {
this.name = name;
this.dob = dob;
}
public String getName(){
return name;
}
public EMR (String name, String dob, String rfv, double bodyt, double hr, String diag, String pmeds){
this.name = name;
this.dob = dob;
this.rfv = rfv;
this.bodyt = bodyt;
this.hr = hr;
this.diag = diag;
this.pmeds = pmeds;
}
public String getDob() {
return dob;
}
public void setDob(String dob) {
this.dob = dob;
}
public String getRfv() {
return rfv;
}
public void setRfv(String rfv) {
this.rfv = rfv;
}
public double getBodyt() {
return bodyt;
}
public void setBodyt(double bodyt) {
this.bodyt = bodyt;
}
public double getHr() {
return hr;
}
public void setHr(double hr) {
this.hr = hr;
}
public String getDiag() {
return diag;
}
public void setDiag(String diag) {
this.diag = diag;
}
public String getPmeds() {
return pmeds;
}
public void setPmeds(String pmeds) {
this.pmeds = pmeds;
}
@Override
public String toString(){
return"name :" + this.name +"Date of Birth:" + this.dob;
}
}
98是一个字符串,不是双精度的。您需要删除引号:
EMR p2 = new EMR("Anquan","9-30-77", "stomach ache", 98, 120, "stress", "Tylenol");
98是一个字符串,不是双精度的。您需要删除引号:
EMR p2 = new EMR("Anquan","9-30-77", "stomach ache", 98, 120, "stress", "Tylenol");
当您将double传递给方法(即构造函数)时,不能用引号括住double,否则它们是字符串 将double传递给方法(即构造函数)时,不能用引号括住double,否则它们是字符串 在这条线上
EMR p2 = new EMR("Anquan","9-30-77", "stomach ache","98", "120", "stress", "Tylenol");
它正在调用这个构造函数
public EMR (String name, String dob, String rfv, double bodyt, double hr, String diag, String pmeds)
值98和120都是字符串,而不是参数bodyt和hr的两倍
所以,把这行改成
EMR p2 = new EMR("Anquan","9-30-77", "stomach ache",98d, 120d, "stress", "Tylenol");
在这种情况下,双精度的后缀d是可选的。您可以在这行中使用98和120。
EMR p2 = new EMR("Anquan","9-30-77", "stomach ache","98", "120", "stress", "Tylenol");
它正在调用这个构造函数
public EMR (String name, String dob, String rfv, double bodyt, double hr, String diag, String pmeds)
值98和120都是字符串,而不是参数bodyt和hr的两倍
所以,把这行改成
EMR p2 = new EMR("Anquan","9-30-77", "stomach ache",98d, 120d, "stress", "Tylenol");
在这种情况下,双精度的后缀d是可选的。您可以使用98和120。让我们看看这句话:
EMR p2 = new EMR("Anquan","9-30-77", "stomach ache","98", "120", "stress", "Tylenol");
让我们看看您试图调用的构造函数:
public EMR (String name, String dob, String rfv, double bodyt, double hr, String diag, String pmeds)
正如您所看到的,构造函数希望bodyt和hr是双精度类型,但在您的语句中98和120是字符串类型,因为引号是字符串文本。要使它们加倍,只需删除引号:
EMR p2 = new EMR("Anquan","9-30-77", "stomach ache",98, 120, "stress", "Tylenol");
让我们看看这句话:
EMR p2 = new EMR("Anquan","9-30-77", "stomach ache","98", "120", "stress", "Tylenol");
让我们看看您试图调用的构造函数:
public EMR (String name, String dob, String rfv, double bodyt, double hr, String diag, String pmeds)
正如您所看到的,构造函数希望bodyt和hr是双精度类型,但在您的语句中98和120是字符串类型,因为引号是字符串文本。要使它们加倍,只需删除引号:
EMR p2 = new EMR("Anquan","9-30-77", "stomach ache",98, 120, "stress", "Tylenol");
在对象P2的EMR构造函数中传递值时,在内部传递98和120
EMR p2 = new EMR("Anquan","9-30-77", "stomach ache","98", "120", "stress", "Tylenol");
这些是双值,不应在双引号内传递。请将代码更改为
EMR p2 = new EMR("Anquan","9-30-77", "stomach ache",98, 120, "stress", "Tylenol");
在对象P2的EMR构造函数中传递值时,在内部传递98和120
EMR p2 = new EMR("Anquan","9-30-77", "stomach ache","98", "120", "stress", "Tylenol");
这些是双值,不应在双引号内传递。请将代码更改为
EMR p2 = new EMR("Anquan","9-30-77", "stomach ache",98, 120, "stress", "Tylenol");
当涉及到需要许多参数的构造函数和方法时,一个好的经验法则不止3个或4个,最好将参数分组到一个新类型中,并将该类型的实例作为单个参数传递,或者使用生成器模式。当涉及到需要许多参数的构造函数和方法时,一个好的经验法则更有用与3或4相比,最好将参数分组为一个新类型,并将该类型的实例作为单个参数传递,或者使用生成器模式。对于双Java类,甚至可能是98d/120d或98d/120d小写d,对于双Java类,甚至可能是98d/120d或98d/120d小写d,对于双Java类,甚至可能是98d/120d或98d/120d大写d双Java类