<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.explainxkcd.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=217.246.73.150</id>
		<title>explain xkcd - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://www.explainxkcd.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=217.246.73.150"/>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php/Special:Contributions/217.246.73.150"/>
		<updated>2026-07-09T17:46:31Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1188:_Bonding&amp;diff=30624</id>
		<title>1188: Bonding</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1188:_Bonding&amp;diff=30624"/>
				<updated>2013-03-20T19:41:11Z</updated>
		
		<summary type="html">&lt;p&gt;217.246.73.150: Randall doesn't differentiate small/caps, therefore using Java guidelines.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1188&lt;br /&gt;
| date      = March 20, 2013&lt;br /&gt;
| title     = Bonding&lt;br /&gt;
| image     = bonding.png&lt;br /&gt;
| titletext = I'm trying to build character, but Eclipse is really confusing.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
This is a {{w|source code}} written in the {{w|Java (programming language)|Java programming language}}, which models a parent and a child playing a {{w|Catch (game)|game of catch}}, in which the parent throws a ball to their child, who catches it and throws it back, which repeats. (The comic title “Bonding” refers to the {{w|Paternal bond|building of relationship}} between the parent and the child.) But the computer program representation of this game is funny, using a play on the keywords &amp;lt;code&amp;gt;throw&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;catch&amp;lt;/code&amp;gt; (and &amp;lt;code&amp;gt;Throwable&amp;lt;/code&amp;gt;), which, in Java, do not correspond to throwing and catching a ball, but to a so-called {{w|exception handling}}, a method of signaling error conditions and responding to them.&lt;br /&gt;
&lt;br /&gt;
The program, as written, will {{w|Recursion (computer science)|recursively}} call the &amp;lt;code&amp;gt;Aim&amp;lt;/code&amp;gt; method alternately on the parent and the child indefinitely, until the program crashes with a {{w|stack overflow}}.&lt;br /&gt;
&lt;br /&gt;
Also, the terms “parent” and “child” are usually interpreted more abstractly in programming, as a generic terms used in hierarchical {{w|Data structure|data structures}}.&lt;br /&gt;
&lt;br /&gt;
The title text refers to [http://www.eclipse.org/ Eclipse], which is a tool commonly used to develop software in Java. (And “building” might be a play on the term of “{{w|Software build|building}}” a program.)&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
 class Ball extends Throwable {}&lt;br /&gt;
 class P{&lt;br /&gt;
     P target;&lt;br /&gt;
     P(P target) {&lt;br /&gt;
         this.target = target;&lt;br /&gt;
     }&lt;br /&gt;
     void aim (Ball ball) {&lt;br /&gt;
         try {&lt;br /&gt;
             throw ball;&lt;br /&gt;
         }&lt;br /&gt;
         catch (Ball b) {&lt;br /&gt;
             target.aim(b);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     public static void main(String[] args) {&lt;br /&gt;
         P parent = new P(null);&lt;br /&gt;
         P child = new P(parent);&lt;br /&gt;
         parent.target = child;&lt;br /&gt;
         parent.aim(new Ball());&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>217.246.73.150</name></author>	</entry>

	</feed>