对象作为参数?

时间:2014-04-15 00:51:12

标签: java interface-implementation

我之前曾问过一个关于在Java中用子类实现类的问题,我发现了一种不同的方法。(对我不同!) 网址:here

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错误。 应该发生什么,我理解中缺少什么?请帮忙。

2 个答案:

答案 0 :(得分:0)

如果我明白你做了什么,我想你确实喜欢这样:

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

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

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

答案 1 :(得分:0)

如果我理解正确,testFunction需要两个参数:p0类型的parameterObject,然后是类型a的{​​{1}}。

您是否按此方式调用了这个方法:int

这个电话不会匹配方法签名"。这意味着您传递的值的类型与方法所期望的值不匹配。 testFunction("arpan", 19, 20)是一个字符串,"arpan"两个 int。

你可以这样做:

19, 20