赋值如下:创建一个名为Salesperson的类。Salesperson的数据字段包括一个整数ID号和一个双年度销售额。方法包括一个构造函数,该构造函数需要两个数据字段的值,以及每个数据字段的get和set方法。编写一个名为DemoSalesperson的应用程序,声明一个由10个Salesperson对象组成的数组。将每个ID号设置为9999,将每个销售值设置为零。显示10个销售人员对象。
salesperm.java:
public class Salesperson {
int ID;
double sales;
public Salesperson(int iDnumber, double sales) {
this.ID = iDnumber;
this.sales = sales;
}
public void setID(int iDnumber) {
this.ID = iDnumber;
}
public void setSales(double sales) {
this.sales = sales;
}
public int getID() {
return ID;
}
public double getSales() {
return sales;
}
}
DemoSalesPers.java:
public class DemoSalesperson {
public static void main(String[] args) {
Salesperson[] salesperson = new Salesperson[12];
//creates 12 salespeople and sets their id to 9999 and sales to 0
for (int i = 0; i < 12; ++i){
salesperson[i] = new Salesperson(9999, 0);
}
for (int i = 0; i < 12; ++i){
System.out.println(salesperson[i].getID() + ", " + salesperson[i].getSales());
}
}
}
代码正常工作,但是,当在Salesperson类中定义setId和getId时,平台会向我抛出这些错误:
NtTestcda27358.java:8: error: cannot find symbol
salesperson.setId(101);
^
symbol: method setId(int)
location: variable salesperson of type Salesperson
NtTestcda27358.java:9: error: cannot find symbol
assertEquals(salesperson.getId(), 101);
^
symbol: method getId()
location: variable salesperson of type Salesperson
NtTestcda27358.java:10: error: cannot find symbol
salesperson.setId(1009);
^
symbol: method setId(int)
location: variable salesperson of type Salesperson
NtTestcda27358.java:11: error: cannot find symbol
assertEquals(salesperson.getId(), 1009);
^
symbol: method getId()
location: variable salesperson of type Salesperson
4 errors
Test Contents
@Test
public void unitTest() {
Salesperson salesperson = new Salesperson(999, 0.0);
salesperson.setId(101);
assertEquals(salesperson.getId(), 101);
salesperson.setId(1009);
assertEquals(salesperson.getId(), 1009);
}
同样在定义Salesperson类的构造函数和get方法时:
NtTest427994f5.java:8: error: cannot find symbol
assertEquals(salesperson.getId(), 997);
^
symbol: method getId()
location: variable salesperson of type Salesperson
NtTest427994f5.java:11: error: cannot find symbol
assertEquals(salesperson2.getId(), 78);
^
symbol: method getId()
location: variable salesperson2 of type Salesperson
2 errors
Test Contents
@Test
public void unitTest() {
Salesperson salesperson = new Salesperson(997, 56.87);
assertEquals(salesperson.getId(), 997);
assertEquals(salesperson.getSales(), 56.87, 1e-15);
Salesperson salesperson2 = new Salesperson(78, 1001.34);
assertEquals(salesperson2.getId(), 78);
assertEquals(salesperson2.getSales(), 1001.34, 1e-15);
}
如何修复这些错误以及如何避免这些错误?
您提供了方法getID()
和setID()
,但测试需要名为getId()
和setId()
的方法。这与期望销售人员ID的字段将命名为id
,而不是ID
有关,这与强大的、广泛使用的Java约定一致,即实例变量将使用首字母小写字母命名。