我正在努力学习java并且继续前进,但是我遇到了这个例子,我不明白" tommy"从myPuppy传递到name。有人可以解释一下这有用吗?我不明白这两者是如何联系在一起的。
public class AnalyticsExceptionHandler implements UncaughtExceptionHandler
{
// Private
private UncaughtExceptionHandler _defaultHandlerRef;
public AnalyticsExceptionHandler(UncaughtExceptionHandler defaultHandlerRef)
{
this._defaultHandlerRef = defaultHandlerRef;
}
@Override
public void uncaughtException(Thread t, Throwable e)
{
// ...track and send the exception to Google Analytics...
_defaultHandlerRef.uncaughtException(t, e);
}
}
如果我们编译并运行上面的程序,那么它将产生以下结果:
传递的名字是:tommy
答案 0 :(得分:2)
它未从myPuppy
传递到name
。会发生什么:
Puppy
表达式时,会创建一个新的new Puppy(...)
对象。name
)将替换为传递给new
的参数。在这种情况下"tommy"
。因此,在构造函数中,变量name
现在引用字符串tommy
。myPuppy
。答案 1 :(得分:0)
您可以将构造函数视为具有一个“name”参数的函数。在此函数的主体中,您有控制台打印语句。
一旦你在你的主程序中调用它,那么将使用提供的名称初始化Puppy,这里是“tommy”。
初始化此对象后,名称将打印在屏幕上。
答案 2 :(得分:0)
正如名称所暗示的那样,构造函数构造一个对象。对象是类的实例。在您的情况下,Puppy
是您要创建对象的类。
在Java中,new
关键字创建了一个新对象。在创建类的新对象时,可以将构造函数视为函数。
在这种情况下,new Puppy("tommy")
会向构造函数传递对String
“tommy”的引用,并将其分配给变量name
。然后System.out.println(...)
调用将传递给“tommy”的引用并在控制台上打印出来。