0

以前、Java でサブクラスごとにクラスを実装することについて質問したことがありますが、別のアプローチが使用されていることがわかりました (私にとっては別の方法です!) URL:こちら

public void paintComponent(Graphics g){

クラスがパラメーターとして渡されたため、この行は私にとって混乱を招きました。さて、ここで質問する前に、試して理解しようと思いました。これが私のコードです:

public class parameterObject{

String name;
int age;

public parameterObject(){}
public parameterObject(String inputName,int inputAge){

    name = inputName;
    age = inputAge;

}
public void testObject(){

System.out.println(name);
System.out.println(age);
}

}

そして次のクラスではparameterObject、パラメータとして渡すメソッドを使用しました(bjueJ環境で)

public void testFunction(parameterObject pO, int a){
 pO.testObject();
}

メソッドを呼び出すと、testFunction(...)パラメーター値を要求され、入力し"arpan",19 and 20ました。エラー:予想される..次にnull、objectParameterに使用しようとすると、JVMがnullPointExceptionエラーをスローしました..何が起こるはずで、何が私の理解に欠けていますか? 助けてください。

4

2 に答える 2

0

私が正しく理解している場合は、 testFunction2 つのパラメーターが期待されます。最初p0は typeparameterObjectで、次にatypeintです。

次のようにメソッドを呼び出しましたtestFunction("arpan", 19, 20)か?

この呼び出しは「メソッド シグネチャと一致」しません。これは、渡した値の型が、メソッドが期待する型と一致しないことを意味します。 "arpan"は String で19, 202 つのint です。

代わりに次のようなことができます。

parameterObject abc = new parameterObject("arpan", 19);
testFunction(abc, 17);  // one parameterObject and one int - just like testFunction expects
于 2014-04-15T01:02:55.417 に答える