coef
の配列をコンストラクタのローカル変数として定義しました。つまり、他の場所では使用できません。
あなたが他のメソッドからアクセスするために、インスタンスメンバとして定義する必要があります。
class Polynomial {
private double[] coef; // declare the array as an instance member
public Polynomial(int degree)
{
coef = new double[degree]; // initialize the array in the constructor
}
public double[] setCoefficient(int index, double value)
{
coef[index] = value; // access the array from any instance method of the class
return coef;
}
}
注意をsetCoefficient
にメンバ変数coef
を返すことは、このクラスのユーザが直接配列を変異させることが可能になるということ(再度setCoefficient
メソッドを呼び出す必要はありません)、これは良い考えではありません。メンバー変数はプライベートである必要があり、それらを含むクラスのメソッドによってのみ変更する必要があります。
そこで私は方法を変更したい:あなたはどちらか、クラスの外部からの配列の要素にアクセスする必要がある配列の個々の値を返すdouble getCoefficient(int index)
メソッドを追加、または追加する場合
public void setCoefficient(int index, double value)
{
// you should consider adding a range check here if you want to throw
// your own custom exception when the provided index is out of bounds
coef[index] = value;
}
配列ののを返すdouble[] getCoefficients()
メソッドを使用します。
javaの変数スコープを理解するには、このリンクをお読みください。 https://www.tutorialspoint.com/java/java_variable_types.htm – vsbehere
シンプル:変数を使用せず、**フィールド**を使用します。これは本当に超基本的なものです。素敵な答えがありましたが、このサイトは何度も同じ基本を繰り返し説明するものではないことをご理解ください。あなたが本/次のチュートリアルを読んでいるあなたのために、SOを**置き換え**と仮定しないでください。 – GhostCat