驱动测试程序的类问题

时间:2015-02-07 15:06:44

标签: java class oop testing

我一直在组建一个Drive Tester来测试我一直在为一项任务工作的课程,但是我已经对测试人员说了一个死胡同,我不知道如何完成它并删除任何错误。< / p>

以下是测试人员:

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语句实际上不是语句,并且说它们每个都需要一个分号,尽管它们确实在那里。它也说没有正式或实际的论点。我知道它们是什么,但无论如何我都对它们感到困惑。

这是我需要通过测试人员的课程:

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

有关让班级测试员正常运作的建议吗?一旦测试人员工作,其余的任务就不是问题。

编辑:程序编译,但无法打印String语句。

PersonClassTester
*****************

surName   forName        25  1.570000    gender

2 个答案:

答案 0 :(得分:2)

String "smith" = joeSmith.setSurName();语法不正确。它应该是这样的:

joeSmith.setSurName("smith")

这告诉Java在对象setSurName()上执行方法joeSmith,并将给定的字符串作为参数。

main中的其他作业也是如此。

答案 1 :(得分:1)

你的setter方法如下:

public void setSurName(String surName)
{
    this.surName = surName;
}

其中说你的setter不会返回任何内容,它需要一个String类型的参数。

现在,您可以使用setter方法:

String "smith" = joeSmith.setSurName();

所以这里意味着你期待来自setter的姓氏,这是你看到的编译器错误的一部分。如上所述,它需要一个字符串参数,而你没有传递它,这是编译器问题的另一部分。

所以你可能想把它改成:

joeSmith.setSurName("smith");//similar changes with other setter method.

这意味着,现在你通过调用这个方法传递字符串参数而不期待任何回报,因此编译器会对此感到满意。