Browse Source

Update 'README.md'

git-leon 5 years ago
parent
commit
ac3102c77f
1 changed files with 88 additions and 66 deletions
  1. 88
    66
      README.md

+ 88
- 66
README.md View File

@@ -1,92 +1,114 @@
1 1
 # NaiveTicket
2 2
 
3
-The second Objects lab,from the BlueJ book's second chapter.
3
+The second Objects lab, from the BlueJ book's second chapter.
4 4
 
5
-Look for the [Chapter 2 file](./doc/BlueJ-objects-first-ch2.pdf) you need in the [doc](./doc) folder. There is 35 pages of reading and exercises in the chapter.
5
+Look for the [Chapter 2 file](./doc/BlueJ-objects-first-ch2.pdf) you need in the [doc](./doc) folder.
6
+There is 35 pages of reading and exercises in the chapter.
6 7
 
7 8
 Work through all these exercises. You edit this file with your answers for these exercises.
8 9
 
9
-* Exercise 2.1 Create a TicketMachine object on the object bench and take a look
10
-at its methods. You should see the following: getBalance, getPrice, insertMoney,
11
-and printTicket. Try out the getPrice method. You should see a return value containing
12
-the price of the tickets that was set when this object was created. Use the
13
-insertMoney method to simulate inserting an amount of money into the machine and
14
-then use getBalance to check that the machine has a record of the amount inserted.
15
-You can insert several separate amounts of money into the machine, just like you might
16
-insert multiple coins or notes into a real machine. Try inserting the exact amount
17
-required for a ticket. As this is a simple machine, a ticket will not be issued automatically,
18
-so once you have inserted enough money, call the printTicket method. A
19
-facsimile ticket should be printed in the BlueJ terminal window.
20
-* Exercise 2.2 What value is returned if you check the machine’s balance after it
21
-has printed a ticket?
22
-* Exercise 2.3 Experiment with inserting different amounts of money before printing
23
-tickets. Do you notice anything strange about the machine’s behavior? What happens
24
-if you insert too much money into the machine – do you receive any refund? What
25
-happens if you do not insert enough and then try to print a ticket?
26
-* Exercise 2.4 Try to obtain a good understanding of a ticket machine’s behavior by
27
-interacting with it on the object bench before we start looking at how the
28
-TicketMachine class is implemented in the next section.
29
-* Exercise 2.5 Create another ticket machine for tickets of a different price. Buy a
30
-ticket from that machine. Does the printed ticket look different?
31
-
32
-* Exercise 2.6 Write out what you think the outer wrappers of the Student and
33
-LabClass classes might look like – do not worry about the inner part.
34
-* Exercise 2.7 Does it matter whether we write
35
-`public class TicketMachine`
36
-or
37
-`class public TicketMachine`
38
-in the outer wrapper of a class? Edit the source of the TicketMachine class to
39
-make the change and then close the editor window. Do you notice a change in the
40
-class diagram?
41
-What error message do you get when you now press the Compile button? Do you think
42
-this message clearly explains what is wrong?
43
-* Exercise 2.8 Check whether or not it is possible to leave out the word public
44
-from the outer wrapper of the TicketMachine class.
45
-
46
-* Exercise 2.9 From your earlier experimentation with the ticket machine objects
47
-within BlueJ you can probably remember the names of some of the methods –
48
-printTicket, for instance. Look at the class definition in Code 2.1 and use this
49
-knowledge, along with the additional information about ordering we have given you,
50
-to try to make a list of the names of the fields, constructors, and methods in the
51
-TicketMachine class. Hint: There is only one constructor in the class.
52
-Exercise 2.10 Do you notice any features of the constructor that make it significantly
53
-different from the other methods of the class?
54
-
55
-* Exercise 2.11 What do you think is the type of each of the following fields?
10
+### Exercise 2.1
11
+* Create a TicketMachine object on the object bench.
12
+* Upon viewing its methods, `getBalance`, `getPrice`, `insertMoney`, `printTicket`.
13
+* Use `getPrice` method to view the value of the price of the tickets that was set when this object was created.
14
+* Use `insertMoney` method to simulate inserting an amount of money into the machine.
15
+* Use `getBalance` to check that the machine has a record of the amount inserted.
16
+	* 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.
17
+
18
+### Exercise 2.2
19
+* What value is returned if you check the machine’s balance after it has printed a ticket?
20
+
21
+### Exercise 2.3
22
+* Experiment with inserting different amounts of money before printing tickets.
23
+	* Do you notice anything strange about the machine’s behavior?
24
+	* What happens if you insert too much money into the machine – do you receive any refund?
25
+	* What happens if you do not insert enough and then try to print a ticket?
26
+
27
+### Exercise 2.4
28
+* 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.
29
+
30
+### Exercise 2.5
31
+* Create another ticket machine for tickets of a different price.
32
+	* Buy a ticket from that machine.
33
+	* Does the printed ticket look different?
34
+
35
+### Exercise 2.6
36
+* Write out what you think the outer wrappers of the `Student` and `LabClass` classes might look like – do not worry about the inner part.
37
+
38
+### Exercise 2.7
39
+Does it matter whether we write<br>
40
+`public class TicketMachine`<br>
41
+or<br>
42
+`class public TicketMachine`<br>
43
+in the outer wrapper of a class?
44
+
45
+* Edit the source of the `TicketMachine` class to make the change and then close the editor window.
46
+	* Do you notice a change in the class diagram?
47
+	* What error message do you get when you now press the compile button?
48
+	* Do you think this message clearly explains what is wrong?
49
+
50
+### Exercise 2.8
51
+* Check whether or not it is possible to leave out the word `public` from the outer wrapper of the `TicketMachine` class.
52
+
53
+### Exercise 2.9
54
+* 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.
55
+	* 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.
56
+	* Hint: There is only one constructor in the class.
57
+
58
+### Exercise 2.10
59
+* Do you notice any features of the constructor that make it significantly different from the other methods of the class?
60
+
61
+### Exercise 2.11
62
+* What do you think is the type of each of the following fields?
56 63
 ```
57 64
 private int count;
58 65
 private Student representative;
59 66
 private Server host;
60 67
 ```
61
-* Exercise 2.12 What are the names of the following fields?
68
+
69
+### Exercise 2.12
70
+* What are the names of the following fields?
62 71
 ```
63 72
 private boolean alive;
64 73
 private Person tutor;
65 74
 private Game game;
66 75
 ```
67
-* Exercise 2.13 In the following field declaration from the TicketMachine class
76
+### Exercise 2.13
77
+In the following field declaration from the TicketMachine class<br>
68 78
 ```
69 79
 private int price;
70
-```
71
-does it matter which order the three words appear in? Edit the TicketMachine class to
72
-try different orderings. After each change, close the editor. Does the appearance of the
73
-class diagram after each change give you a clue as to whether or not other orderings are
74
-possible? Check by pressing the Compile button to see if there is an error message.
75
-Make sure that you reinstate the original version after your experiments!
76
-* Exercise 2.14 Is it always necessary to have a semicolon at the end of a field declaration?
77
-Once again, experiment via the editor. The rule you will learn here is an
78
-important one, so be sure to remember it.
79
-* Exercise 2.15 Write in full the declaration for a field of type int whose name is
80
-status.
81
-* Exercise 2.16 To what class does the following constructor belong?
80
+```<br>
81
+does it matter which order the three words appear in?
82
+* Edit the `TicketMachine` class to try different orderings. After each change, close the editor.
83
+	* Does the appearance of the class diagram after each change give you a clue as to whether or not other orderings are
84
+possible?
85
+	* Check by pressing the compile button to see if there is an error message.
86
+	* Make sure that you reinstantiate the original version after your experiments!
87
+
88
+### Exercise 2.14
89
+* Is it always necessary to have a semicolon at the end of a field declaration?
90
+* Once again, experiment via the editor.
91
+* The rule you will learn here is an important one, so be sure to remember it.
92
+
93
+
94
+### Exercise 2.15
95
+* Write in full the declaration for a field of type `int` whose name is `status`.
96
+
97
+### Exercise 2.16
98
+* To what class does the following constructor belong?
82 99
 ```
83 100
 public Student(String name)
84 101
 ```
85
-* Exercise 2.17 How many parameters does the following constructor have and what are their types?
102
+
103
+### Exercise 2.17
104
+* How many parameters does the following constructor have and what are their types?
86 105
 ```
87 106
 public Book(String title, double price)
88 107
 ```
89
-* 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?
90 108
 
91
-Work all Exercises from 2.19 to 2.58 that are NOT marked *Challenge exercise*.
109
+### Exercise 2.18
110
+* Can you guess what types some of the `Book` class’s fields might be?
111
+* Can you assume anything about the names of its fields?
112
+
113
+Work all Exercises from 2.19 to 2.58 that are **NOT** marked *Challenge exercise*.
92 114
 READ upto and INCLUDING section 2.15 of this chapter.