-1

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

找不到符号 - 变量 jobName

我们必须创建一个名为 Job 的类,其中包含两个简单的字段 Job name 和 Job length。

我不明白为什么我会收到此错误消息。代码如下。提前感谢您的帮助。

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

 }
}
4

6 回答 6

1

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

于 2012-10-07T13:47:06.337 回答
0

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

于 2012-10-07T13:47:25.710 回答
0

您的构造函数正在使用一个名为jobNameand的新变量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;
    }
于 2012-10-07T13:47:40.437 回答
0

改变这个

private String name;
private int duration;

对此:

private String jobName;
private int jobDuration;
于 2012-10-07T13:49:20.533 回答
0

这是因为您的班级中没有jobName变量,我认为您已将其命名为name

于 2012-10-07T13:49:45.243 回答
0

你给了,

private String name;
private int duration;

并且您正在使用jobName, jobDuration未定义的。请声明这些或使用,

this.name = name;
this.duration = duration;
于 2012-10-07T13:54:03.927 回答