diff --git a/Doc/Sd1/coreClasses.xml b/Doc/Sd1/coreClasses.xml index 73db851134a48490193aa7a1a74dbdfd53c8e246..7adac727a3d5b68ed1644bf889e52b35145e5e94 100644 --- a/Doc/Sd1/coreClasses.xml +++ b/Doc/Sd1/coreClasses.xml @@ -62,11 +62,66 @@ <figure xml:id="sd1_coreclasses_fig_stringCopyConstructorApiHint"> <title>String copy constructor</title> - <programlisting language="java">String s = new String("Eve");</programlisting> + <informaltable border="1"> + <tr> + <th>Code</th> + + <th>Output</th> + </tr> + + <tr> + <td valign="top"><programlisting language="java">final String s = "Eve"; <co + linkends="sd1_coreclasses_fig_stringCopyConstructorApiHint-1" + xml:id="sd1_coreclasses_fig_stringCopyConstructorApiHint-1-co"/> +final String sCopy = new <link + xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html#%3Cinit%3E(java.lang.String)">String</link>(s); <co + linkends="sd1_coreclasses_fig_stringCopyConstructorApiHint-2" + xml:id="sd1_coreclasses_fig_stringCopyConstructorApiHint-2-co"/> +System.out.println("sCopy == s: " + (sCopy == s)); <co + linkends="sd1_coreclasses_fig_stringCopyConstructorApiHint-3" + xml:id="sd1_coreclasses_fig_stringCopyConstructorApiHint-3-co"/> +System.out.println("sCopy.equals(s): " + sCopy.equals(s)); <co + linkends="sd1_coreclasses_fig_stringCopyConstructorApiHint-4" + xml:id="sd1_coreclasses_fig_stringCopyConstructorApiHint-4-co"/></programlisting></td> + + <td valign="top"><screen>sCopy == s: false <coref + linkend="sd1_coreclasses_fig_stringCopyConstructorApiHint-3-co"/> +sCopy.equals(s): true <coref + linkend="sd1_coreclasses_fig_stringCopyConstructorApiHint-4-co"/></screen></td> + </tr> + </informaltable> - <para>Uses constructor <methodname - xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html#%3Cinit%3E(java.lang.String)">public - String(String original)</methodname>.</para> + <calloutlist role="slideExclude"> + <callout arearefs="sd1_coreclasses_fig_stringCopyConstructorApiHint-1-co" + role="slideExclude" + xml:id="sd1_coreclasses_fig_stringCopyConstructorApiHint-1"> + <para>The string literal <code language="java">"Eve"</code> + corresponds to an instance of <classname>String</classname>. Its + reference is being assigned to variable <code + language="java">s</code>.</para> + </callout> + + <callout arearefs="sd1_coreclasses_fig_stringCopyConstructorApiHint-2-co" + xml:id="sd1_coreclasses_fig_stringCopyConstructorApiHint-2"> + <para>A clone carrying the same value <code + language="java">"Eve"</code> is being created by virtue of the + <classname + xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html#%3Cinit%3E(java.lang.String)">String</classname> + class copy constructor.</para> + </callout> + + <callout arearefs="sd1_coreclasses_fig_stringCopyConstructorApiHint-3-co" + xml:id="sd1_coreclasses_fig_stringCopyConstructorApiHint-3"> + <para>We indeed have two distinct objects.</para> + </callout> + + <callout arearefs="sd1_coreclasses_fig_stringCopyConstructorApiHint-4-co" + xml:id="sd1_coreclasses_fig_stringCopyConstructorApiHint-4"> + <para>But both <classname + xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html#%3Cinit%3E(java.lang.String)">String</classname> + instances carry the same value.</para> + </callout> + </calloutlist> </figure> <figure xml:id="sd1_coreclasses_fig_stringCopyConstructor">