From 27d6f62a4ad6afb7204e056b8d34d1ea71941560 Mon Sep 17 00:00:00 2001 From: Julie Moon Date: Wed, 8 Jul 2020 19:32:25 -0400 Subject: [PATCH] submission --- .idea/.gitignore | 3 +++ .idea/misc.xml | 6 +++++ .idea/modules.xml | 8 ++++++ .idea/vcs.xml | 6 +++++ BlueJ.NaiveTicket.iml | 11 +++++++++ README.md | 57 ++++++++++++++++++++++++++++++------------- TicketMachine.java | 3 ++- bluej.pkg | 36 +++++++++++++++++---------- package.bluej | 36 +++++++++++++++++---------- 9 files changed, 122 insertions(+), 44 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 BlueJ.NaiveTicket.iml 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..e208459 --- /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..beb3da1 100644 --- a/README.md +++ b/README.md @@ -22,12 +22,14 @@ Work through all these exercises. You edit this file with your answers for these ### Exercise 2.2 * What value is returned if you check the machine’s balance after it has printed a ticket? - + 0 ### Exercise 2.3 * Experiment with inserting different amounts of money before printing tickets. - * Do you notice anything strange about the machine’s behavior? + * Do you notice anything strange about the machine’s behavior? I do not recieve a refund, nor do I have a remaining balance on my account. * What happens if you insert too much money into the machine – do you receive any refund? + No refund. * What happens if you do not insert enough and then try to print a ticket? + I can still print the ticket. ### 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,50 +37,67 @@ 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? + No, it does not look different. ### 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. +public class Student { + +} + +public class LabClass { + +} ### Exercise 2.7 Does it matter whether we write
`public class TicketMachine`
or
`class public TicketMachine`
-in the outer wrapper of a class? +in the outer wrapper of a class? Yes it matters. * 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. The TicketMachine Class box has hash marks on it. + * What error message do you get when you now press the compile button? + Error found in class. + * Do you think this message clearly explains what is wrong? + Yes, the hash marks show that it cannot be compiled. ### 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. ### 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. + + methods: getPrice, getBalance, insertMoney, printTicket. + fields: price, balance, total, ticketNumber + constructor: TicketMachine ### Exercise 2.10 * Do you notice any features of the constructor that make it significantly different from the other methods of the class? +The constructor is the same name as the class. ### 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; int +private Student representative; Student +private Server host; Server ``` ### 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 +108,38 @@ 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? + * Does the appearance of the class diagram after each change give you a clue as to whether or not other orderings are possible? + Yes, there are hash marks on the TicketMachine class box, and it is not possible to change the order. * 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? * Once again, experiment via the editor. + Yes it is always necessary. * 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`. - + private int status; ### Exercise 2.16 * To what class does the following constructor belong? ``` public Student(String name) ``` +It belongs to the Student class. ### Exercise 2.17 * How many parameters does the following constructor have and what are their types? ``` public Book(String title, double price) ``` +This constructor has 2 parameters and they are of type String and type double. ### Exercise 2.18 * Can you guess what types some of the `Book` class’s fields might be? +The fields will likely be type String and type double. * Can you assume anything about the names of its fields? - +Two of the field names will likely be title and price. READ upto and INCLUDING section 2.15 of this chapter. diff --git a/TicketMachine.java b/TicketMachine.java index 630c4ea..f554eb6 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 + public class TicketMachine { // The price of a ticket from this machine. private Integer price; @@ -96,3 +96,4 @@ public String printTicket() return "Ticket price: " + price + " cents. " + "Your total is " + total + "."; } } + diff --git a/bluej.pkg b/bluej.pkg index bf25784..4aab1c7 100644 --- a/bluej.pkg +++ b/bluej.pkg @@ -1,20 +1,23 @@ #BlueJ package file +dependency1.from=TicketMachineTest +dependency1.to=TicketMachine +dependency1.type=UsesDependency editor.fx.0.height=722 editor.fx.0.width=800 -editor.fx.0.x=709 -editor.fx.0.y=113 +editor.fx.0.x=134 +editor.fx.0.y=23 objectbench.height=101 -objectbench.width=461 +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.editor.width=682 +package.editor.x=28 +package.editor.y=54 package.frame.height=600 package.frame.width=800 -package.numDependencies=0 -package.numTargets=1 +package.numDependencies=1 +package.numTargets=2 package.showExtends=true package.showUses=true project.charset=UTF-8 @@ -24,9 +27,16 @@ readme.width=47 readme.x=10 readme.y=10 target1.height=50 -target1.name=TicketMachine +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=10 +target1.y=110 +target2.height=50 +target2.name=TicketMachine +target2.showInterface=false +target2.type=ClassTarget +target2.width=120 +target2.x=80 +target2.y=50 diff --git a/package.bluej b/package.bluej index bf25784..4aab1c7 100644 --- a/package.bluej +++ b/package.bluej @@ -1,20 +1,23 @@ #BlueJ package file +dependency1.from=TicketMachineTest +dependency1.to=TicketMachine +dependency1.type=UsesDependency editor.fx.0.height=722 editor.fx.0.width=800 -editor.fx.0.x=709 -editor.fx.0.y=113 +editor.fx.0.x=134 +editor.fx.0.y=23 objectbench.height=101 -objectbench.width=461 +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.editor.width=682 +package.editor.x=28 +package.editor.y=54 package.frame.height=600 package.frame.width=800 -package.numDependencies=0 -package.numTargets=1 +package.numDependencies=1 +package.numTargets=2 package.showExtends=true package.showUses=true project.charset=UTF-8 @@ -24,9 +27,16 @@ readme.width=47 readme.x=10 readme.y=10 target1.height=50 -target1.name=TicketMachine +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=10 +target1.y=110 +target2.height=50 +target2.name=TicketMachine +target2.showInterface=false +target2.type=ClassTarget +target2.width=120 +target2.x=80 +target2.y=50