我在一本 Java 书中看到了这个片段(Walter Savitch):
/**
Class whose privacy can be breached.
*/
public class PetPair
{
private Pet first, second;
public PetPair(Pet firstPet, Pet secondPet)
{
first = firstPet;
second = secondPet;
}
public Pet getFirst()
{
return first;
}
public Pet getSecond()
{
return second;
}
public void writeOutput()
{
System.out.println("First pet in the pair:");
first.writeOutput();
System.out.println("\nSecond pet in the pair:");
second.writeOutput();
}
}
我不明白的是为什么方法“writeOutput”在其体内有对 writeOutput 本身的调用。一个方法中如何可以有相同的方法,即一个方法如何调用自身?我可以理解一个方法调用另一个方法,但这对我来说没有意义!
我什么也没尝试。我没有尝试在 Eclipse 上运行该程序。为什么?因为我不明白调用自身的方法背后的想法。如果有人可以向我解释这一点,我很乐意运行该程序并查看输出。我确信该程序可以运行,因为我从书上得到了它,但是运行它不会对我有任何好处,因为我不理解其基础。
我不明白的是为什么方法“writeOutput”在其体内有对 writeOutput 本身的调用。
“writeOutput”方法不会调用它自己,它“首先”调用 Pet 对象中的 writeOutput 方法,然后调用“第二个”Pet 对象上的 writeOutput 方法。
它调用 Pet 类中名为 writeOutput 的方法,而不是它本身的 writeOutput 方法。
如果它真的想调用它 self ,它会调用它 self 作为“this.writeOutput()”