diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..639900d
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..be0c818
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/BlueJ.NaiveTicket.iml b/BlueJ.NaiveTicket.iml
new file mode 100644
index 0000000..b107a2d
--- /dev/null
+++ b/BlueJ.NaiveTicket.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index ee11f2c..5985983 100644
--- a/README.md
+++ b/README.md
@@ -13,33 +13,43 @@ There is 35 pages of reading and exercises in the chapter.
Work through all these exercises. You edit this file with your answers for these exercises.
### Exercise 2.1
-* Create a TicketMachine object on the object bench.
+* Create a TicketMachine object on the object bench.
* Upon viewing its methods, `getBalance`, `getPrice`, `insertMoney`, `printTicket`.
* Use `getPrice` method to view the value of the price of the tickets that was set when this object was created.
* Use `insertMoney` method to simulate inserting an amount of money into the machine.
* Use `getBalance` to check that the machine has a record of the amount inserted.
- * 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.
+ * 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?
+* The balance is $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?
+ * The machine continues to add that amount on to what I already paid.
+
+ * What happens if you insert too much money into the machine – do you receive any refund?
+ * No, it moves the money to the Total.
+
+ * What happens if you do not insert enough and then try to print a ticket?
+ * The machine says that I need 500 cents and only entered 300.
### 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.
### 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?
+ * Buy a ticket from that machine.
+ * Does the printed ticket look different?
+ * Only slightly, it just changes the print that the ticket costs.
### 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.
-
+?
### Exercise 2.7
Does it matter whether we write
`public class TicketMachine`
@@ -48,37 +58,50 @@ or
in the outer wrapper of a class?
* 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?
+ * Do you notice a change in the class diagram?
+ * Yes, it is crosshatched.
+
+ * What error message do you get when you now press the compile button?
+ * expected
+
+ * Do you think this message clearly explains what is wrong?
+ * Somewhat, but I think it could be more clear on what an identifier would be.
### Exercise 2.8
* Check whether or not it is possible to leave out the word `public` from the outer wrapper of the `TicketMachine` class.
+* It is possible because it allows me to compile and run the tests.
### 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.
+ * 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.
+ * Methods - getPrice(), getTicketNumber(), getBalance(),
+ * Constructor - TicketMachine
+ * Fields - price, balance, total, ticketnumber,
### Exercise 2.10
* Do you notice any features of the constructor that make it significantly different from the other methods of the class?
+* Constructors must be named the same as the class and they cannot return anything.
### Exercise 2.11
* What do you think is the type of each of the following fields?
```java
-private int count;
-private Student representative;
-private Server host;
+private int count; - primitive
+private Student representative; - object
+private Server host; - object
```
+
+
### Exercise 2.12
* What are the names of the following fields?
```java
-private boolean alive;
-private Person tutor;
-private Game game;
+private boolean alive; - alive
+private Person tutor; - tutor
+private Game game; - game
```
### Exercise 2.13
@@ -89,34 +112,37 @@ private int price;
```
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?
- * 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!
+ * Does the appearance of the class diagram after each change give you a clue as to whether or not other orderings are
+possible? Yes, and they do not seem to be possible in any other order, or it will not compile.
+
+ * 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!
### Exercise 2.14
* Is it always necessary to have a semicolon at the end of a field declaration?
+* Yes.
* Once again, experiment via the editor.
* The rule you will learn here is an important one, so be sure to remember it.
### Exercise 2.15
* Write in full the declaration for a field of type `int` whose name is `status`.
+* public int status;
### Exercise 2.16
* To what class does the following constructor belong?
```
-public Student(String name)
+public Student(String name)-Student
```
### Exercise 2.17
* How many parameters does the following constructor have and what are their types?
```
-public Book(String title, double price)
+public Book(String title, double price)-Two, one of String type and one of Double type
```
### 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?
+* Can you guess what types some of the `Book` class’s fields might be? - String and Double?
+* Can you assume anything about the names of its fields? - title and price?
READ upto and INCLUDING section 2.15 of this chapter.
diff --git a/TicketMachine.java b/TicketMachine.java
index 630c4ea..46853ab 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..6a4858b 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=0
+editor.fx.0.width=0
+editor.fx.0.x=0
+editor.fx.0.y=0
+objectbench.height=154
+objectbench.width=776
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.divider.vertical=0.7029520295202952
+package.editor.height=374
+package.editor.width=682
+package.editor.x=1872
+package.editor.y=0
package.frame.height=600
package.frame.width=800
-package.numDependencies=0
-package.numTargets=1
+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=480
+target1.y=90
+target2.height=50
+target2.name=TicketMachine
+target2.showInterface=false
+target2.type=ClassTarget
+target2.width=120
+target2.x=240
+target2.y=160
+target3.height=70
+target3.name=README.md
+target3.type=TextTarget
+target3.width=120
+target3.x=80
+target3.y=30
diff --git a/package.bluej b/package.bluej
index bf25784..6a4858b 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=0
+editor.fx.0.width=0
+editor.fx.0.x=0
+editor.fx.0.y=0
+objectbench.height=154
+objectbench.width=776
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.divider.vertical=0.7029520295202952
+package.editor.height=374
+package.editor.width=682
+package.editor.x=1872
+package.editor.y=0
package.frame.height=600
package.frame.width=800
-package.numDependencies=0
-package.numTargets=1
+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=480
+target1.y=90
+target2.height=50
+target2.name=TicketMachine
+target2.showInterface=false
+target2.type=ClassTarget
+target2.width=120
+target2.x=240
+target2.y=160
+target3.height=70
+target3.name=README.md
+target3.type=TextTarget
+target3.width=120
+target3.x=80
+target3.y=30