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. 错误:预期..然后我尝试使用nullobjectParameter然后JVM抛出nullPointException错误..应该发生什么以及我缺乏什么理解?请帮忙。

4

2 回答 2

0

如果我理解正确,testFunction需要两个参数:首先p0是 type parameterObject,然后a是 type int

你有没有像这样调用方法:testFunction("arpan", 19, 20)

此调用不会“匹配方法签名”。这意味着您传入的值的类型与方法所期望的不匹配。 "arpan"是一个字符串并且19, 20两个整数。

你可以这样做:

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

如果我理解你的所作所为,我认为你是这样做的:

X.testFunction("arpan", 19, 20);

这是不对的,你必须这样做:

X.testFunction(new parameterObject("arpan", 19), 20);
于 2014-04-15T00:59:21.787 回答