Class 问题的驱动测试仪
Drive Tester for a Class Issues
我一直在组装一个 Drive Tester 来测试一个 class 我一直在为一项任务而努力,但我在测试器方面遇到了死胡同,我不确定如何完成它并删除所有错误。
这是测试人员:
public class PersonTester
{
public static void main(String[] args)
{
System.out.println("PersonClassTester");
System.out.println("*****************");
System.out.println("");
Person joeSmith = new Person();
String "smith" = joeSmith.setSurName(); // All these statements with set surname and forname etc are apperantly not statements and require a semi-colon, even though they are there.
String "joe" = joeSmith.setForName();
int 25 = joeSmith.setAge();
double 1.57 = joeSmith.setHeight();
String "male" = joeSmith.setGender();
joeSmith.toString();
joeSmith.format();
}
}
这个问题的主要问题是 Netbeans 客户端声明突出显示的 setter 语句实际上不是语句,并且说尽管它们实际上存在,但每个语句都需要一个分号.这也表示没有正式或实际的论据。我知道它们是什么,但无论如何我都对它们感到困惑。
这是 class 我需要 运行 通过测试仪:
public class Person
{
private String surName;
private String forName;
private int age;
private double height;
private String gender;
@Override
public String toString()
{
return getClass().getName() + "[surName= " + surName + " forName= " + forName + " age= " + age + " height= " + height + " gender " + gender + "]";
}
public void format()
{
System.out.format("%10s%10s%10d%10f%10s", surName, forName, age, height, gender);
}
public String getSurName()
{
return surName;
}
public String getForName()
{
return forName;
}
public int getAge()
{
return age;
}
public double getHeight()
{
return height;
}
public String getGender()
{
return gender;
}
public void setSurName(String surName)
{
this.surName = surName;
}
public void setForName(String forName)
{
this.forName = forName;
}
public void setAge(int age)
{
this.age = age;
}
public void setHeight(double height)
{
this.height = height;
}
public void setGender(String gender)
{
this.gender = gender;
}
}
关于让 class 测试仪正常运行的任何建议?一旦测试人员开始工作,剩下的作业应该不是什么大问题。
编辑:程序编译,但无法打印字符串语句。
PersonClassTester
*****************
surName forName 25 1.570000 gender
String "smith" = joeSmith.setSurName();
语法不正确。它应该是这样的:
joeSmith.setSurName("smith")
这告诉 Java 在对象 joeSmith
上执行方法 setSurName()
,将给定的字符串作为参数。
main
中的其他作业也是如此。
您的 setter 方法如下所示:
public void setSurName(String surName)
{
this.surName = surName;
}
也就是说你的 setter 不会 return 任何东西,它需要一个字符串类型的参数。
下面是您使用 setter 方法的方式:
String "smith" = joeSmith.setSurName();
所以这里意味着您需要 setter 的姓氏,这是您看到的编译器错误的一部分。如前所述,它需要一个字符串参数,而您没有传递它,这是编译器问题的另一部分。
因此您可能希望将其更改为:
joeSmith.setSurName("smith");//similar changes with other setter method.
这意味着,现在您正在传递字符串参数,而不是通过调用此方法在 return 中期望任何内容,因此编译器会对此感到满意。
我一直在组装一个 Drive Tester 来测试一个 class 我一直在为一项任务而努力,但我在测试器方面遇到了死胡同,我不确定如何完成它并删除所有错误。
这是测试人员:
public class PersonTester
{
public static void main(String[] args)
{
System.out.println("PersonClassTester");
System.out.println("*****************");
System.out.println("");
Person joeSmith = new Person();
String "smith" = joeSmith.setSurName(); // All these statements with set surname and forname etc are apperantly not statements and require a semi-colon, even though they are there.
String "joe" = joeSmith.setForName();
int 25 = joeSmith.setAge();
double 1.57 = joeSmith.setHeight();
String "male" = joeSmith.setGender();
joeSmith.toString();
joeSmith.format();
}
}
这个问题的主要问题是 Netbeans 客户端声明突出显示的 setter 语句实际上不是语句,并且说尽管它们实际上存在,但每个语句都需要一个分号.这也表示没有正式或实际的论据。我知道它们是什么,但无论如何我都对它们感到困惑。
这是 class 我需要 运行 通过测试仪:
public class Person
{
private String surName;
private String forName;
private int age;
private double height;
private String gender;
@Override
public String toString()
{
return getClass().getName() + "[surName= " + surName + " forName= " + forName + " age= " + age + " height= " + height + " gender " + gender + "]";
}
public void format()
{
System.out.format("%10s%10s%10d%10f%10s", surName, forName, age, height, gender);
}
public String getSurName()
{
return surName;
}
public String getForName()
{
return forName;
}
public int getAge()
{
return age;
}
public double getHeight()
{
return height;
}
public String getGender()
{
return gender;
}
public void setSurName(String surName)
{
this.surName = surName;
}
public void setForName(String forName)
{
this.forName = forName;
}
public void setAge(int age)
{
this.age = age;
}
public void setHeight(double height)
{
this.height = height;
}
public void setGender(String gender)
{
this.gender = gender;
}
}
关于让 class 测试仪正常运行的任何建议?一旦测试人员开始工作,剩下的作业应该不是什么大问题。
编辑:程序编译,但无法打印字符串语句。
PersonClassTester
*****************
surName forName 25 1.570000 gender
String "smith" = joeSmith.setSurName();
语法不正确。它应该是这样的:
joeSmith.setSurName("smith")
这告诉 Java 在对象 joeSmith
上执行方法 setSurName()
,将给定的字符串作为参数。
main
中的其他作业也是如此。
您的 setter 方法如下所示:
public void setSurName(String surName)
{
this.surName = surName;
}
也就是说你的 setter 不会 return 任何东西,它需要一个字符串类型的参数。
下面是您使用 setter 方法的方式:
String "smith" = joeSmith.setSurName();
所以这里意味着您需要 setter 的姓氏,这是您看到的编译器错误的一部分。如前所述,它需要一个字符串参数,而您没有传递它,这是编译器问题的另一部分。
因此您可能希望将其更改为:
joeSmith.setSurName("smith");//similar changes with other setter method.
这意味着,现在您正在传递字符串参数,而不是通过调用此方法在 return 中期望任何内容,因此编译器会对此感到满意。