二传手和接球手给了我一个提示;Java找不到符号错误“;这使得代码无法通过我的学习平台的测试
任务如下: 创建一个名为Salesperson的类。Salesperson的数据字段包括整数ID号和双年度销售额。方法包括一个构造函数,该构造函数需要两个数据字段的值,以及每个数据字段的get和set方法。编写一个名为DemoSalesperson的应用程序,该应用程序声明一个包含10个Salesperson对象的数组。将每个ID号设置为9999,将每个销售值设置为零。显示10个Salesperson对象 salesperson.java:二传手和接球手给了我一个提示;Java找不到符号错误“;这使得代码无法通过我的学习平台的测试,java,arrays,Java,Arrays,任务如下: 创建一个名为Salesperson的类。Salesperson的数据字段包括整数ID号和双年度销售额。方法包括一个构造函数,该构造函数需要两个数据字段的值,以及每个数据字段的get和set方法。编写一个名为DemoSalesperson的应用程序,该应用程序声明一个包含10个Salesperson对象的数组。将每个ID号设置为9999,将每个销售值设置为零。显示10个Salesperson对象 salesperson.java: public class Salesperson {
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;
}
}
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());
}
}
}
DemoSalesPerson.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;
}
}
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类定义构造函数和get方法时:
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);
}
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()
的方法。这与期望salesperson ID的字段将命名为ID
,而不是ID
,这与强大、广泛的Java约定相一致,即实例变量将以小写字母开头命名。既然您说代码正常工作
,那么代码就正常工作了。我们需要详细了解这个“平台”是什么以及它是如何工作的,否则就不可能猜测它为什么会抛出错误。我认为你的导师应该是帮助你的人。你的方法叫做getID()
。您显示的单元测试调用了getId()
。这就是为什么它找不到你的方法。将其重命名为测试所需的名称,它应该可以工作。同样适用于setId()
。平台为MindTap。我只是另一个修复它的开发者。非常感谢。从现在起,我会密切关注细节。