diff --git a/README.md b/README.md
index ee11f2c..17816bb 100644
--- a/README.md
+++ b/README.md
@@ -21,13 +21,32 @@ Work through all these exercises. You edit this file with your answers for these
* You can insert several separate amounts of money into the machine, just like you might insert multiple coins or notes into a real machine. Try inserting the exact amount required for a ticket. As this is a simple machine, a ticket will not be issued automatically, so once you have inserted enough money, call the `printTicket` method. A facsimile ticket should be printed in the BlueJ terminal window.
### Exercise 2.2
-* What value is returned if you check the machine’s balance after it has printed a ticket?
+* What value is returned if you check the machine’s balance after it has printed a ticket?
+
+```java
+0
+```
### Exercise 2.3
* Experiment with inserting different amounts of money before printing tickets.
- * Do you notice anything strange about the machine’s behavior?
- * What happens if you insert too much money into the machine – do you receive any refund?
- * What happens if you do not insert enough and then try to print a ticket?
+ * Do you notice anything strange about the machine’s behavior?
+
+ ```java
+ It prints a ticket no matter how much money you have, and it always resets the balance back to zero after printing ticket.
+ ```
+
+ * What happens if you insert too much money into the machine – do you receive any refund?
+
+ ```java
+ No refund is received.
+ ```
+
+ * What happens if you do not insert enough and then try to print a ticket?
+
+ ```java
+ A ticket will print always, no matter how much money you have.
+ ```
+
### Exercise 2.4
* Try to obtain a good understanding of a ticket machine’s behavior by interacting with it on the object bench before we start looking at how the `TicketMachine` class is implemented in the next section.
@@ -35,11 +54,28 @@ Work through all these exercises. You edit this file with your answers for these
### Exercise 2.5
* Create another ticket machine for tickets of a different price.
* Buy a ticket from that machine.
- * Does the printed ticket look different?
+ * Does the printed ticket look different?
+
+ ```java
+ The balance and cost of ticket both reset. Ticket cost gets changed to whatever you set it to.
+ ```
+
### Exercise 2.6
* Write out what you think the outer wrappers of the `Student` and `LabClass` classes might look like – do not worry about the inner part.
+```java
+public class Student {
+
+}
+```
+
+```java
+public class LabClass {
+
+}
+```
+
### Exercise 2.7
Does it matter whether we write
`public class TicketMachine`
@@ -47,22 +83,60 @@ or
`class public TicketMachine`
in the outer wrapper of a class?
+```java
+Yes, it does matter. It should be
+
+public class TicketMachine
+```
+
* Edit the source of the `TicketMachine` class to make the change and then close the editor window.
* Do you notice a change in the class diagram?
- * What error message do you get when you now press the compile button?
- * Do you think this message clearly explains what is wrong?
+
+```java
+Yes, on the diagram the class TicketMachine is now unable to be compiled. It is criss-crossed in red.
+```
+
+* What error message do you get when you now press the compile button?
+
+```java
+4 errors are found after attempting to compile.
+ * expected
+ * expected
+ * illegal start of expression
+ * invalid method declaration; return type required
+ ```
+* Do you think this message clearly explains what is wrong?
+
+```java
+I do not think so because the errors point to other issues in the code, and not the fact that the class was not declared properly.
+```
### Exercise 2.8
* Check whether or not it is possible to leave out the word `public` from the outer wrapper of the `TicketMachine` class.
+```java
+Yes, it is possible.
+```
+
### Exercise 2.9
* From your earlier experimentation with the ticket machine objects within BlueJ you can probably remember the names of some of the methods – `printTicket`, for instance.
* Look at the class definition in Code 2.1 and use this knowledge, along with the additional information about ordering we have given you, to try to make a list of the names of the fields, constructors, and methods in the `TicketMachine` class.
* Hint: There is only one constructor in the class.
+```java
+Fields: price, balance, total
+Constructors: TicketMachine
+Methods: getPrice(), getBalance(), insertMoney(), printTicket()
+```
+
+
### Exercise 2.10
* Do you notice any features of the constructor that make it significantly different from the other methods of the class?
+```java
+TicketMachine just sets initial values but does not return or compute any values. The other methods all return or compute values.
+```
+
### Exercise 2.11
* What do you think is the type of each of the following fields?
@@ -72,6 +146,12 @@ private Student representative;
private Server host;
```
+```java
+private int count; is type int
+private Student representative; is type Student
+private Server host; is type Server
+```
+
### Exercise 2.12
* What are the names of the following fields?
@@ -80,6 +160,11 @@ private boolean alive;
private Person tutor;
private Game game;
```
+
+```java
+alive, tutor, game
+```
+
### Exercise 2.13
In the following field declaration from the TicketMachine class
@@ -91,6 +176,11 @@ does it matter which order the three words appear in?
* Edit the `TicketMachine` class to try different orderings. After each change, close the editor.
* Does the appearance of the class diagram after each change give you a clue as to whether or not other orderings are
possible?
+
+```java
+Yes, the diagrams turn red after clicking compile. This indicates that there are errors in the code and it will not work. Therefore, other orders are not possible.
+```
+
* Check by pressing the compile button to see if there is an error message.
* Make sure that you reinstantiate the original version after your experiments!
@@ -99,24 +189,45 @@ possible?
* Once again, experiment via the editor.
* The rule you will learn here is an important one, so be sure to remember it.
+```java
+Yes, it is always necessary to have a semicolon at the end of a field declaration. If you do not have one then Java does not know that it is the end of the declaration.
+```
+
### Exercise 2.15
* Write in full the declaration for a field of type `int` whose name is `status`.
+```java
+private int status;
+```
+
### Exercise 2.16
* To what class does the following constructor belong?
```
public Student(String name)
```
+```java
+It belongs to Student.
+```
+
### Exercise 2.17
* How many parameters does the following constructor have and what are their types?
```
public Book(String title, double price)
```
+```java
+There are two parameters, title and price, and the their types are String and double.
+```
+
### Exercise 2.18
* Can you guess what types some of the `Book` class’s fields might be?
* Can you assume anything about the names of its fields?
+```java
+Some types might include int, String, char
+You could possibly assume the names themselves based on what the type is.
+```
+
READ upto and INCLUDING section 2.15 of this chapter.
diff --git a/TicketMachine.java b/TicketMachine.java
index 630c4ea..00a84bc 100644
--- a/TicketMachine.java
+++ b/TicketMachine.java
@@ -9,7 +9,7 @@
* @author David J. Barnes and Michael Kolling
* @version 2008.03.30
*/
-public class TicketMachine
+class TicketMachine
{
// The price of a ticket from this machine.
private Integer price;
diff --git a/bluej.pkg b/bluej.pkg
index bf25784..bc5d3d3 100644
--- a/bluej.pkg
+++ b/bluej.pkg
@@ -1,32 +1,48 @@
#BlueJ package file
-editor.fx.0.height=722
-editor.fx.0.width=800
-editor.fx.0.x=709
-editor.fx.0.y=113
-objectbench.height=101
-objectbench.width=461
+dependency1.from=TicketMachineTest
+dependency1.to=TicketMachine
+dependency1.type=UsesDependency
+editor.fx.0.height=964
+editor.fx.0.width=951
+editor.fx.0.x=20
+editor.fx.0.y=69
+objectbench.height=100
+objectbench.width=611
package.divider.horizontal=0.6
-package.divider.vertical=0.8007380073800738
-package.editor.height=427
-package.editor.width=674
-package.editor.x=1067
-package.editor.y=119
-package.frame.height=600
-package.frame.width=800
-package.numDependencies=0
-package.numTargets=1
+package.divider.vertical=0.7220779220779221
+package.editor.height=255
+package.editor.width=518
+package.editor.x=60
+package.editor.y=1114
+package.frame.height=449
+package.frame.width=635
+package.numDependencies=1
+package.numTargets=3
package.showExtends=true
package.showUses=true
project.charset=UTF-8
-readme.height=58
+readme.height=60
readme.name=@README
-readme.width=47
+readme.width=48
readme.x=10
readme.y=10
-target1.height=50
-target1.name=TicketMachine
+target1.height=70
+target1.name=TicketMachineTest
target1.showInterface=false
-target1.type=ClassTarget
-target1.width=120
-target1.x=80
-target1.y=50
+target1.type=UnitTestTargetJunit4
+target1.width=130
+target1.x=330
+target1.y=20
+target2.height=50
+target2.name=TicketMachine
+target2.showInterface=false
+target2.type=ClassTarget
+target2.width=120
+target2.x=120
+target2.y=90
+target3.height=70
+target3.name=README.md
+target3.type=TextTarget
+target3.width=120
+target3.x=560
+target3.y=10
diff --git a/package.bluej b/package.bluej
index bf25784..bc5d3d3 100644
--- a/package.bluej
+++ b/package.bluej
@@ -1,32 +1,48 @@
#BlueJ package file
-editor.fx.0.height=722
-editor.fx.0.width=800
-editor.fx.0.x=709
-editor.fx.0.y=113
-objectbench.height=101
-objectbench.width=461
+dependency1.from=TicketMachineTest
+dependency1.to=TicketMachine
+dependency1.type=UsesDependency
+editor.fx.0.height=964
+editor.fx.0.width=951
+editor.fx.0.x=20
+editor.fx.0.y=69
+objectbench.height=100
+objectbench.width=611
package.divider.horizontal=0.6
-package.divider.vertical=0.8007380073800738
-package.editor.height=427
-package.editor.width=674
-package.editor.x=1067
-package.editor.y=119
-package.frame.height=600
-package.frame.width=800
-package.numDependencies=0
-package.numTargets=1
+package.divider.vertical=0.7220779220779221
+package.editor.height=255
+package.editor.width=518
+package.editor.x=60
+package.editor.y=1114
+package.frame.height=449
+package.frame.width=635
+package.numDependencies=1
+package.numTargets=3
package.showExtends=true
package.showUses=true
project.charset=UTF-8
-readme.height=58
+readme.height=60
readme.name=@README
-readme.width=47
+readme.width=48
readme.x=10
readme.y=10
-target1.height=50
-target1.name=TicketMachine
+target1.height=70
+target1.name=TicketMachineTest
target1.showInterface=false
-target1.type=ClassTarget
-target1.width=120
-target1.x=80
-target1.y=50
+target1.type=UnitTestTargetJunit4
+target1.width=130
+target1.x=330
+target1.y=20
+target2.height=50
+target2.name=TicketMachine
+target2.showInterface=false
+target2.type=ClassTarget
+target2.width=120
+target2.x=120
+target2.y=90
+target3.height=70
+target3.name=README.md
+target3.type=TextTarget
+target3.width=120
+target3.x=560
+target3.y=10