Java エラー: コンストラクターが未定義です
このガイドでは、Java のエラー、コンストラクターが定義されていません
について説明します。
Java の constructor is undefined
エラー
constructor is undefined
はよくあるエラーです。 このエラーは、タイトルのようにコンストラクターを定義していない場合に発生します。
ユーザーがデフォルトのコンストラクターとパラメーター化されたコンストラクターの間で混乱する可能性があるため、このエラーが発生するのは非常に簡単です。 最も一般的な問題は、ユーザーがパラメーターを使用してコンストラクターを定義することですが、呼び出し中にパラメーターについて言及しないことです。 したがって、このエラーが発生します。
別の理由として、コンストラクターの定義方法が考えられます。 コンストラクターは戻り値の型なしで定義されるため、戻り値の型が言及されている場合、同じエラーが発生する可能性があります。
コード例:
public class Shapes {
double Shapes;
double Width;
double Height;
public void Shapes(double Name) // constructor defined
{
Name = Shape;
}
public void setHeight(double HeightOfShape) {
Height = HeightOfShape;
}
public void setWidth(double WidthOfShape) {
Width = WidthOfShape;
}
}
public class TestClass {
public static void main(String[] args) {
Shapes Shape1 = new Shapes(); // Error will occor here.
Shape1.setHeight(5);
Shape1.setWidth(3);
}
}
出力:
TestClass.java:24: error: constructor Shapes in class Shapes cannot be applied to given types;
Shapes Shape1 = new Shapes(); //Error will occor here.
^
required: double
found: no arguments
reason: actual and formal argument lists differ in length
このエラー クラス Shapes のコンストラクタ Shapes は、指定された型に適用できません;
constructor is undefined
と同じです。 ここでは単純な形状関数がパラメーター化されたコンストラクターとして定義されていますが、関数は呼び出し中にパラメーターを使用して呼び出されません。
2 番目の理由は、コンストラクターが戻り値の型を受け入れないことです。そのため、void
について言及することさえ規則に違反しています。
Java の constructor is undefined
エラーを修正
解決策は、戻り値の型void
を削除しながら上記のとおりです。 呼び出し関数のパラメーターに言及することで、constructor is undefined
というエラーをうまく取り除くことができます。
以下のコード スニペットは、前のコード セクションで説明したエラーを修正する方法を示しています。 これらのエラーを取り除くことで、プログラムを思い通りに実行できます。
コード例:
class Shapes {
double shape;
double Width;
double Height;
public Shapes(double Name) // removing return type
{
Name = shape;
}
public void setHeight(double HeightOfShape) {
Height = HeightOfShape;
}
public void setWidth(double WidthOfShape) {
Width = WidthOfShape;
}
}
public class TestClass {
public static void main(String[] args) {
Shapes Shape1 = new Shapes(3); // adding proper parameters
Shape1.setHeight(5);
Shape1.setWidth(3);
}
}
エラーが残ることはなく、コードは目的どおりに正常に実行されます。 最も単純な間違いが、この種の不要なエラーを引き起こす可能性があることに注意してください。
今後このようなエラーが発生しないように、コードを適切に修正し、Java の構文を学習することを常に念頭に置いてください。
Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.
LinkedIn