Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions source/ch6_definingclasses.ptx
Original file line number Diff line number Diff line change
Expand Up @@ -423,6 +423,74 @@ public Fraction(Integer num, Integer den) {
</code>
</program>
</listing>

<exercise label="java_encapsulation_getters_setters_parsons">
<statement>
<p>
Rearrange the blocks to construct a fully encapsulated <c>BankAccount</c> class. The class should feature:
<ul>
<li>A <c>private double balance</c> instance variable.</li>
<li>A public getter method <c>getBalance()</c> that returns the balance.</li>
<li>A public setter method <c>setBalance(double balance)</c> that updates the balance only if the value is non-negative <m>($ \ge 0 $)</m>.</li>
</ul>
</p>
</statement>
<blocks>
<block order="1">
<choice correct="yes">
<cline>public class BankAccount {</cline>
<cline> private double balance;</cline>
</choice>
<choice correct="no">
<cline>public class BankAccount {</cline>
<cline> public double balance;</cline>
</choice>
</block>

<block order="2">
<choice correct="yes">
<cline> public double getBalance() {</cline>
<cline> return balance;</cline>
<cline> }</cline>
</choice>
<choice correct="no">
<cline> public void getBalance() {</cline>
<cline> return balance;</cline>
<cline> }</cline>
</choice>
</block>

<block order="3">
<choice correct="yes">
<cline> public void setBalance(double balance) {</cline>
</choice>
<choice correct="no">
<cline> public double setBalance(double balance) {</cline>
</choice>
</block>

<block order="4">
<choice correct="yes">
<cline> if (balance &gt;= 0.0) {</cline>
<cline> this.balance = balance;</cline>
<cline> }</cline>
<cline> }</cline>
</choice>
<choice correct="no">
<cline> if (balance &gt;= 0.0) {</cline>
<cline> balance = balance;</cline>
<cline> }</cline>
<cline> }</cline>
</choice>
</block>

<block order="5">
<cline>}</cline>
</block>
</blocks>
</exercise>


</section>

<section xml:id="methods">
Expand Down