Skip to content
Snippets Groups Projects
Commit d53ae92e authored by Goik Martin's avatar Goik Martin
Browse files

Extended string copy constructor explanation

parent dbb30ba8
No related branches found
No related tags found
No related merge requests found
......@@ -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">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment