diff --git a/README.md b/README.md index 4f153b0..0440494 100644 --- a/README.md +++ b/README.md @@ -17,13 +17,15 @@ 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? + // The machine will take any amount of money and still print a ticket * What happens if you insert too much money into the machine – do you receive any refund? + // The machine does not give you a refund and keeps the extra money with a zero balance * What happens if you do not insert enough and then try to print a ticket? - + // The ticket will still print even through your total is less than the cost of a 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. @@ -31,9 +33,12 @@ Work through all these exercises. You edit this file with your answers for these * Create another ticket machine for tickets of a different price. * Buy a ticket from that machine. * Does the printed ticket look different? +// The ticket looks the same ### 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
@@ -44,48 +49,54 @@ 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? + //The TicketMachine has lines through it and will not make an object * What error message do you get when you now press the compile button? + // Identifier expected * Do you think this message clearly explains what is wrong? - + // The message lets you know that it needs an Identifier in the correct order to run ### Exercise 2.8 * Check whether or not it is possible to leave out the word `public` from the outer wrapper of the `TicketMachine` class. +// Yes you can leave out "public" and it will still function the same ### 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. +//fields (price, balance, total, ticketNumber) +//constructors (TicketMachine) +//methods (getPrice, getTicketNumber, getBalance, insertMoney, calculateTotal, incrementTicketNumber, printTicket) ### 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 does not return anything, has defined variables and accepts two parameters, ### 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 In the following field declaration from the TicketMachine class
```java -private int price; +private Integer 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, the ticket class shows lines through it to show it does not Work * 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! @@ -93,25 +104,29 @@ possible? * Is it always necessary to have a semicolon at the end of a field declaration? * Once again, experiment via the editor. * The rule you will learn here is an important one, so be sure to remember it. - +// A semicolon is always needed at the end of a field declaration ### 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) ``` - +// Student ### Exercise 2.17 * How many parameters does the following constructor have and what are their types? ``` public Book(String title, double price) ``` - +// two (String, double) ### Exercise 2.18 * Can you guess what types some of the `Book` class’s fields might be? +// String, Integer, float * Can you assume anything about the names of its fields? +// title, author, datePublished, publisher, numberOfPages + -READ upto and INCLUDING section 2.15 of this chapter. +READ up to and INCLUDING section 2.15 of this chapter. diff --git a/TicketMachine.java b/TicketMachine.java index 630c4ea..407c033 100644 --- a/TicketMachine.java +++ b/TicketMachine.java @@ -9,16 +9,18 @@ * @author David J. Barnes and Michael Kolling * @version 2008.03.30 */ -public class TicketMachine + class public TicketMachine { // The price of a ticket from this machine. - private Integer price; + private Integer price; // The amount of money entered by a customer so far. private Integer balance; // The total amount of money collected by this machine. private Integer total; // The number of tickets printed. private Integer ticketNumber; + //Exercise 2.15 + private Integer status; /** * Create a machine that issues tickets of the given price.