Schildt使用下图的示例演示如何将对象用作参数。
我对此示例有疑问:
如果我想使用变量作为参数,则必须首先声明它,那么为什么可以使用一个对象(测试o)而不创建它? Java如何处理呢?
很抱歉,如果这是一个愚蠢的问题,我只是想详细了解这个问题,而不是仅仅记住它。
答案 0 :(得分:1)
我认为您是指:
boolean equalTo(Test o) { ... }
在这种情况下,Test o
是一个参数定义。调用此方法时,您必须传递Test
对象。在这样做之前,通常可以创建一个实例,尽管您可以根据需要传入null
。
答案 1 :(得分:1)
当您将对象作为方法的参数传递时,无需在函数中再次对其进行初始化。如果这样做,您将创建一个新对象并使用新对象,而不是作为参数传递的对象。这显然是您最可能不想做的事情。
但是,传递的参数可以为null,因此您可以在这样的方法中添加null检查器:
if(test == null) { return false; }
答案 2 :(得分:0)
以以下功能为例:
public class ThisClass{
void variableAsParameter( int a){
System.out.println(a);
}
public static void main(String args[]){
ThisClass thisIsAnObject = new ThisClass();
int variableToBeUsed = 23;
thisIsAnObject.variableAsParameter(5);
thisIsAnObject.variableAsParameter(variableToBeUsed);
}
}
因此,在此示例中,您可以看到,当使用variableToBeUsed
作为参数时,您已经在main函数中进行了声明。同样,在您发布的示例中,Test o
实际上是从main函数引用ob2
和ob3
的。参数和变量不必具有相同的名称。
希望这会有所帮助。