-1

コードから次のエラー メッセージが表示されます。

シンボルが見つかりません - 変数 jobName

Job name と job length という 2 つの単純なフィールドを持つ 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);            
    }

 }
}
4

6 に答える 6

1

andの代わりに、jobNameandと言うjobDuration必要があります。これは、これらのフィールドの名前が付けられているためです。this.namethis.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 に答える