Java 作业类构造函数中的错误消息.请帮忙



>我从我的代码中收到以下错误消息,

找不到符号 - 变量作业名称

我们必须创建一个名为 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);            
    }
 }
}

而不是 jobNamejobDuration ,您需要说this.namethis.duration,因为这就是这些字段的名称。

您将私有数据成员命名为"name",但您一直将其称为"jobName"。

构造函数正在使用一个名为 jobNamejobDuration 的新变量,该变量未定义。更正如下:

    /**
     * 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;

最新更新