File tree 5 files changed +109
-0
lines changed 5 files changed +109
-0
lines changed Original file line number Diff line number Diff line change
1
+ eclipse.preferences.version =1
2
+ org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode =enabled
3
+ org.eclipse.jdt.core.compiler.codegen.targetPlatform =1.8
4
+ org.eclipse.jdt.core.compiler.codegen.unusedLocal =preserve
5
+ org.eclipse.jdt.core.compiler.compliance =1.8
6
+ org.eclipse.jdt.core.compiler.debug.lineNumber =generate
7
+ org.eclipse.jdt.core.compiler.debug.localVariable =generate
8
+ org.eclipse.jdt.core.compiler.debug.sourceFile =generate
9
+ org.eclipse.jdt.core.compiler.problem.assertIdentifier =error
10
+ org.eclipse.jdt.core.compiler.problem.enumIdentifier =error
11
+ org.eclipse.jdt.core.compiler.source =1.8
Original file line number Diff line number Diff line change
1
+ package beverage ;
2
+
3
+ public class BeverageTestDrive {
4
+
5
+ public static void main (String [] args ) {
6
+ System .out .println ("Making tea..." );
7
+ Tea tea = new Tea ();
8
+ tea .prepareRecipe ();
9
+
10
+ System .out .println ("Making coffee..." );
11
+ Coffee coffee = new Coffee ();
12
+ coffee .prepareRecipe ();
13
+ }
14
+ }
Original file line number Diff line number Diff line change
1
+ package beverage ;
2
+
3
+ public abstract class CaffeineBeverage {
4
+ final void prepareRecipe () {
5
+ boilWater ();
6
+ brew ();
7
+ pourInCup ();
8
+ if (customerWantsCondiments ()) {
9
+ addCondiments ();
10
+ }
11
+
12
+ }
13
+
14
+ public final void boilWater () {
15
+ System .out .println ("Boiling water" );
16
+ }
17
+
18
+ public final void pourInCup () {
19
+ System .out .println ("Pouring into cup" );
20
+ }
21
+
22
+ public boolean customerWantsCondiments () {
23
+ return true ;
24
+ }
25
+
26
+ abstract void brew ();
27
+ abstract void addCondiments ();
28
+ }
Original file line number Diff line number Diff line change
1
+ package beverage ;
2
+
3
+ import java .io .BufferedReader ;
4
+ import java .io .IOException ;
5
+ import java .io .InputStreamReader ;
6
+
7
+ public class Coffee extends CaffeineBeverage {
8
+
9
+ @ Override
10
+ void brew () {
11
+ System .out .println ("Dripping Coffee through filter" );
12
+ }
13
+
14
+ @ Override
15
+ void addCondiments () {
16
+ System .out .println ("Adding Sugar and Milk" );
17
+ }
18
+
19
+ public boolean customerWantsCondiments () {
20
+ String answer = getUserInput ();
21
+ if (answer .toLowerCase ().startsWith ("y" )) {
22
+ return true ;
23
+ } else {
24
+ return false ;
25
+ }
26
+ }
27
+
28
+ private String getUserInput () {
29
+ String answer = null ;
30
+ System .out .print ("Would you like milk and sugar with your coffee (y/n)? " );
31
+ BufferedReader in = new BufferedReader (new InputStreamReader (System .in ));
32
+ try {
33
+ answer = in .readLine ();
34
+ } catch (IOException ioe ) {
35
+ System .err .println ("IO error trying to read your answer" );
36
+ }
37
+ if (answer == null ) {
38
+ return "no" ;
39
+ }
40
+ return answer ;
41
+ }
42
+ }
Original file line number Diff line number Diff line change
1
+ package beverage ;
2
+
3
+ public class Tea extends CaffeineBeverage {
4
+
5
+ @ Override
6
+ void brew () {
7
+ System .out .println ("Steeping the tea" );
8
+ }
9
+
10
+ @ Override
11
+ void addCondiments () {
12
+ System .out .println ("Adding Lemon" );
13
+ }
14
+ }
You can’t perform that action at this time.
0 commit comments