>我从我的代码中收到以下错误消息,
找不到符号 - 变量作业名称
我们必须创建一个名为 Job 的类,其中包含两个简单的字段 Job 名称和作业长度。
我不明白为什么我会收到此错误消息。代码如下。提前感谢您的帮助。
import java.util.ArrayList;
public class Job
{
// instance variables - replace the example below with your own
private String name;
private int duration;
private boolean isComplete;
/**
* Constructor for objects of class Job
*/
public Job(String name, int duration)
{
// initialise instance variables
jobName = name;
jobDuration = duration;
}
/**
* Accessor method for job name.
*
* @param y a sample parameter for a method
* @return value of job.
*/
public String getName() {
{
// put your code here
return jobName;
}
}
/**
* Accessor method for job duration.
*
* @param y a sample parameter for a method
* @return value of job duration.
*
*/
public int getDuration() {
{
return jobDuration;
}
}
/**
* Run method which prints.
*
* @param y a sample parameter for a method.
* @return
*/
public void run(String name, int duration) {
if (isComplete)
{
System.out.print("JOB COMPLETE" + jobName);
}
}
}
而不是 jobName
和 jobDuration
,您需要说this.name
和this.duration
,因为这就是这些字段的名称。
您将私有数据成员命名为"name",但您一直将其称为"jobName"。
构造函数正在使用一个名为 jobName
和 jobDuration
的新变量,该变量未定义。更正如下:
/**
* Constructor for objects of class Job
*/
public Job(String name, int duration){
// initialise instance variables
name = name;
duration = duration;
}
此外,更好的做法是使用不同的参数和成员变量名称,或者在成员变量之前使用this
,例如
/**
* Constructor for objects of class Job
*/
public Job(String aName, int aDuration) {
// initialise instance variables
name = aName;
duration = aDuration;
}
或
/**
* Constructor for objects of class Job
*/
public Job(String name, int duration) {
// initialise instance variables
this.name = name;
this.duration = duration;
}
更改此设置
private String name;
private int duration;
对此:
private String jobName;
private int jobDuration;
因为你的类中没有jobName
变量,我想你已经把它命名为name
你给了,
private String name;
private int duration;
并且您正在使用未定义的jobName, jobDuration
。请声明这些或使用,
this.name = name;
this.duration = duration;