java puzzle ball - oracle · 3 private shape shape = shape.rect; 4 private int xposition; 5 private...

12

Upload: others

Post on 04-Jul-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Java Puzzle Ball - Oracle · 3 private Shape shape = Shape.RECT; 4 private int xPosition; 5 private int yPosition; 6 7 public void ping(){ 8 System.out.println("Ping"); 9 } 10 public
Page 2: Java Puzzle Ball - Oracle · 3 private Shape shape = Shape.RECT; 4 private int xPosition; 5 private int yPosition; 6 7 public void ping(){ 8 System.out.println("Ping"); 9 } 10 public

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

Java Puzzle Ball Nick Ristuccia Lesson 1-2 Object Oriented Thinking and Class Design

Page 3: Java Puzzle Ball - Oracle · 3 private Shape shape = Shape.RECT; 4 private int xPosition; 5 private int yPosition; 6 7 public void ping(){ 8 System.out.println("Ping"); 9 } 10 public

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

Exercise 1

• Play Basic Puzzles 1 through 5.

– Your Goal: Design a solution that deflects the ball to Duke.

• Consider the following:

– What objects do you find on the field of play?

– What happens when you put a triangle wall or simple wall icon on the blue wheel?

3

Triangle Wall Icon Simple Wall Icon

Page 4: Java Puzzle Ball - Oracle · 3 private Shape shape = Shape.RECT; 4 private int xPosition; 5 private int yPosition; 6 7 public void ping(){ 8 System.out.println("Ping"); 9 } 10 public

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

What objects did you find on the field of play?

•RedBumper •BlueBumper

•Ball •Duke

•LevelGeometry

Object Types

4

Page 5: Java Puzzle Ball - Oracle · 3 private Shape shape = Shape.RECT; 4 private int xPosition; 5 private int yPosition; 6 7 public void ping(){ 8 System.out.println("Ping"); 9 } 10 public

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

BlueBumper Objects

What happens when you put a triangle wall or simple wall icon on a blue wheel?

• A wall appears on every instance of a blue bumper object.

• Walls give bumpers behaviors that deflect and interact with the ball.

• All blue bumper instances share these same behaviors.

5

Instance Instance

Page 6: Java Puzzle Ball - Oracle · 3 private Shape shape = Shape.RECT; 4 private int xPosition; 5 private int yPosition; 6 7 public void ping(){ 8 System.out.println("Ping"); 9 } 10 public

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

Describing a BlueBumper

6

• Properties:

– Color

– Shape

– x-position

– y-position

• Behaviors:

– Make ping sound

– Flash

– Deflect ball (via Simple Wall)

– Deflect ball (via Triangle Wall)

Page 7: Java Puzzle Ball - Oracle · 3 private Shape shape = Shape.RECT; 4 private int xPosition; 5 private int yPosition; 6 7 public void ping(){ 8 System.out.println("Ping"); 9 } 10 public

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

Describing a Ball

7

• Properties:

– Direction

– x-position

– y-position

• Behaviors:

– Make ping sound

– Change direction

– Change x-position

– Change y-position

Page 8: Java Puzzle Ball - Oracle · 3 private Shape shape = Shape.RECT; 4 private int xPosition; 5 private int yPosition; 6 7 public void ping(){ 8 System.out.println("Ping"); 9 } 10 public

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

Why Does This Matter?

• We've observed important aspects of object-oriented programming.

– Objects can be described as a combination of properties and behaviors.

– There may be many instances of the same object type.

– All instances of an object share the same behaviors.

• Once you understand these principals conceptually, it's simply a matter of translating ideas into Java syntax and terminology.

• Remember these observations as lessons and exercises become increasingly technical.

8

Page 9: Java Puzzle Ball - Oracle · 3 private Shape shape = Shape.RECT; 4 private int xPosition; 5 private int yPosition; 6 7 public void ping(){ 8 System.out.println("Ping"); 9 } 10 public

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

1 public class BlueBumper {

2 public Color color = Color.BLUE;

3 public Shape shape = Shape.RECT;

4 public int xPosition;

5 public int yPosition;

6

7 public void ping(){

8 System.out.println("Ping");

9 }

10 public void flash(){

11 System.out.println("Flash");

12 }

13 public void methodA(){

14 simpleWall();

15 }

16 }

Translating into Java Syntax

9

Properties

Behaviors

Page 10: Java Puzzle Ball - Oracle · 3 private Shape shape = Shape.RECT; 4 private int xPosition; 5 private int yPosition; 6 7 public void ping(){ 8 System.out.println("Ping"); 9 } 10 public

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

1 public class BlueBumper {

2 private Color color = Color.BLUE;

3 private Shape shape = Shape.RECT;

4 private int xPosition;

5 private int yPosition;

6

7 public void ping(){

8 System.out.println("Ping");

9 }

10 public void flash(){

11 System.out.println("Flash");

12 }

13 public void methodA(){

14 simpleWall();

15 }

16 }

Java Terminology

10

Fields (Properties) (Attributes)

Methods (Behaviors)

Class declaration

Page 11: Java Puzzle Ball - Oracle · 3 private Shape shape = Shape.RECT; 4 private int xPosition; 5 private int yPosition; 6 7 public void ping(){ 8 System.out.println("Ping"); 9 } 10 public

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

Your Challenge as a Java Programmer

It's a design challenge similar to what you faced in Java Puzzle Ball:

• Consider what type of objects should exist in your program.

• Consider the properties and behaviors of these object types.

– Design your code with the understanding that every instance of an object will possess the same properties and behaviors.

– Some behaviors may be inappropriate for a given object type.

Blue Bumper object instances

Designing the Blue Bumpers

Page 12: Java Puzzle Ball - Oracle · 3 private Shape shape = Shape.RECT; 4 private int xPosition; 5 private int yPosition; 6 7 public void ping(){ 8 System.out.println("Ping"); 9 } 10 public