diff --git a/README.md b/README.md index ee11f2c..79096c1 100644 --- a/README.md +++ b/README.md @@ -22,12 +22,16 @@ 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? + * The value 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? + * Yes, the machine does not behave correctly if too much or too little money is inserted. * What happens if you insert too much money into the machine – do you receive any refund? + * You do not receive a refund or more than one ticket. The balance just returns to zero once a ticket is printed. * What happens if you do not insert enough and then try to print a ticket? + * The machine does not recognize that not enough money was entered. It tells you your total is whatever amount was entered and prints the ticket. Then balance returns to zero. ### 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. @@ -36,32 +40,43 @@ 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? + * It shows a different ticket price but otherwise 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
`public class TicketMachine`
or
`class public TicketMachine`
-in the outer wrapper of a class? +in the outer wrapper of a class? - yes + * 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? + * Do you notice a change in the class diagram? + * yes - TicketMachine now has a red hatch pattern * What error message do you get when you now press the compile button? + * "Illegal start of an expression" * Do you think this message clearly explains what is wrong? + * It's mostly clear. It indicates that you cannot start the expression with 'class' ### Exercise 2.8 -* Check whether or not it is possible to leave out the word `public` from the outer wrapper of the `TicketMachine` class. +* Check whether or not it is possible to leave out the word `public` from the outer wrapper of the `TicketMachine` class. - this does still work ### 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. + * fields - price, balance, total, ticketNumber + * constructors - TicketMachine + * methods - getPrice(), insertMoney(), getBalance(), printTicket(), getTicketNumber(), calculateTotal(), incrementTicketNumber(), printTicket() * Hint: There is only one constructor in the class. ### Exercise 2.10 * Do you notice any features of the constructor that make it significantly different from the other methods of the class? + * it has the same name as the class it's defined in ### Exercise 2.11 * What do you think is the type of each of the following fields? @@ -71,6 +86,7 @@ private int count; private Student representative; private Server host; ``` +* int, Student, Server ### Exercise 2.12 * What are the names of the following fields? @@ -80,6 +96,8 @@ private boolean alive; private Person tutor; private Game game; ``` +* alive, tutor, game + ### Exercise 2.13 In the following field declaration from the TicketMachine class
@@ -87,15 +105,19 @@ In the following field declaration from the TicketMachine class
```java 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? + * yes, they do not seem 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! + * yes + * Make sure that you reinstantiate the original version after your experiments! - done ### 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. @@ -103,20 +125,26 @@ possible? ### 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) ``` +* 2 parameters ### Exercise 2.18 * Can you guess what types some of the `Book` class’s fields might be? + * int, String, boolean * Can you assume anything about the names of its fields? + * their accessibility would extend throughout the class in which they are defined READ upto and INCLUDING section 2.15 of this chapter.