参数中未创建的对象

时间:2018-10-22 02:58:26

标签: java

Schildt使用下图的示例演示如何将对象用作参数。

我对此示例有疑问:

如果我想使用变量作为参数,则必须首先声明它,那么为什么可以使用一个对象(测试o)而不创建它? Java如何处理呢?

很抱歉,如果这是一个愚蠢的问题,我只是想详细了解这个问题,而不是仅仅记住它。

Copyrights of Herbert Schildt

3 个答案:

答案 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函数引用ob2ob3的。参数和变量不必具有相同的名称。

希望这会有所帮助。