Session 13 Pinball Game Construction Kit (Version 3):

Slides:



Advertisements
Similar presentations
Written by: Dr. JJ Shepherd
Advertisements

ABSTRACT CLASSES AND INTERFACES. Abstract methods You can declare an object without defining it: Person p; Similarly, you can declare a method without.
AbstractClassesInterfacesPolymorphism1 Abstract Classes, Interfaces, Polymorphism Barb Ericson Georgia Tech April 2010.
Java Programming, 3e Concepts and Techniques Chapter 5 Arrays, Loops, and Layout Managers Using External Classes.
1 Generics and Using a Collection Generics / Parameterized Classes Using a Collection Customizing a Collection using Inheritance Inner Classes Use of Exceptions.
Cosc 4755 Phone programming: GUI Concepts & Threads.
29-Jun-15 Java Concurrency. Definitions Parallel processes—two or more Threads are running simultaneously, on different cores (processors), in the same.
OOP Week 3 1 Object Oriented Programming in Java Monday, Week 3 Interface PinBallTarget OOP Concepts Last Week’s Assignment Arrays Collection Class --
Ch 13. Features Found Only in Java Timothy Budd Oregon State University.
Chapter 6: Graphical User Interface (GUI) and Object-Oriented Design (OOD) J ava P rogramming: Program Design Including Data Structures Program Design.
OOP Languages: Java vs C++
PROG Mobile Java Application Development PROG Mobile Java Application Development Event Handling Creating Menus.
CSM-Java Programming-I Spring,2005 Introduction to Objects and Classes Lesson - 1.
M1G Introduction to Programming 2 4. Enhancing a class:Room.
Session 12 Introduction to PinBallGame (Chaper 7).
1 Event Driven Programs Rick Mercer. 2 So what happens next?  You can layout a real pretty GUI  You can click on buttons, enter text into a text field,
Spring 2008 Mark Fontenot CSE 1341 Principles of Computer Science I Note Set 2.
CSCI-383 Object-Oriented Programming & Design Lecture 13.
1 Generics and Using a Collection Generics / Parameterized Classes Using a Collection Customizing a Collection using Inheritance Inner Classes Use of Exceptions.
CS 11 java track: lecture 4 This week: arrays interfaces listener classes inner classes GUI callbacks.
Session 21 Chapter 10: Mechanisms for Software Reuse.
Practical OOP using Java Basis Faqueer Tanvir Ahmed, 08 Jan 2012.
Session 11 Border Layout, using Panels, Introduction to PinBallGame.
Session 15 Chapter 8: Understanding Inheritance. Lab Exercise Solution Recall that we needed to know if a mousePress occurred on a target. We tried to.
1 Web Based Programming Section 8 James King 12 August 2003.
More on Hierarchies 1. When an object of a subclass is instantiated, is memory allocated for only the data members of the subclass or also for the members.
11 Adding Tomato Targets Session Session Overview  We now have a game which lets a player bounce a piece of cheese on a bread bat  Now we have.
Threading Eriq Muhammad Adams J
Chapter 7: Pinball Game Construction Kit. Vectors Example of a “collection class” Must “import java.util.Vector” More flexible than arrays: will grow.
Concurrent Programming and Threads Threads Blocking a User Interface.
Session 16 Pinball Game Construction Kit:. Pinball Version 1 Replaced the fire button with a mouse event. Multiple balls can be in the air at once. –Uses.
Session 19 Chapter 10 – Mechanisms for Software Reuse.
Chapter 6 Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view.
BallWorld.java A structured walkthrough. Key Features: 2 classes are created Execution is done through the procedure called “main” which are decleared.
Session 18 Chapter 8: Understanding Inheritance. Recall Exercise 2 From Tuesday It’s very annoying to move a target from the pallet and drop it in the.
Peter Andreae Computer Science Victoria University of Wellington Copyright: Peter Andreae, Victoria University of Wellington Types and Interfaces COMP.
Concurrency Control 1 Fall 2014 CS7020: Game Design and Development.
Programming with Java © 2002 The McGraw-Hill Companies, Inc. All rights reserved. 1 McGraw-Hill/Irwin Chapter 5 Creating Classes.
CS324e - Elements of Graphics and Visualization Timing Framework.
COP3502 Programming Fundamentals for CIS Majors 1 Instructor: Parisa Rashidi.
Java Programming: From Problem Analysis to Program Design, 3e Chapter 6 Graphical User Interface (GUI) and Object-Oriented Design (OOD)
Visual Basic for Application - Microsoft Access 2003 Programming applications using Objects.
Session 25 Test 2 Review. Test 2 Details Tuesday, November 22 in class –(Anybody planning on taking it on Friday?) Closed book Closed notes, except for.
Java Programming: From Problem Analysis to Program Design, Second Edition1 Lecture 5 Objectives  Learn about basic GUI components.  Explore how the GUI.
Threads and Singleton. Threads  The JVM allows multiple “threads of execution”  Essentially separate programs running concurrently in one memory space.
CHAPTER 14 Classes, Objects, and Games XNA Game Studio 4.0.
Session 18 Lab 9 Re-cap, Chapter 12: Polymorphism & Using Sound in Java Applications.
Arrays-. An array is a way to hold more than one value at a time. It's like a list of items.
Lecture 8: Advanced OOP Part 2. Overview Review of Subtypes Interfaces Packages Sorting.
Access Specifier. Anything declared public can be accessed from anywhere. Anything declared private cannot be seen outside of its class. When a member.
Quick Review of OOP Constructs Classes:  Data types for structured data and behavior  fields and methods Objects:  Variables whose data type is a class.
Written by: Dr. JJ Shepherd
1 Event Driven Programs Rick Mercer. 2 So what happens next?  You can layout a real pretty GUI  You can click on buttons, enter text into a text field,
Computer Science II 810:062 Section 01 Session 2 - Objects and Responsibilities.
M1G Introduction to Programming 2 2. Creating Classes: Game and Player.
Chapter 6 Graphical User Interface (GUI) and Object-Oriented Design (OOD)
 Description of Inheritance  Base Class Object  Subclass, Subtype, and Substitutability  Forms of Inheritance  Modifiers and Inheritance  The Benefits.
Game Maker Tutorials Introduction Clickball IntroductionClickball Where is it? Shooting Where is it?Shooting.
 It is a pure oops language and a high level language.  It was developed at sun microsystems by James Gosling.
Java Thread Programming
Sixth Lecture ArrayList Abstract Class and Interface
Java Programming: From Problem Analysis to Program Design,
Chapter 19 Java Never Ends
Interface.
Abstract Class As per dictionary, abstraction is the quality of dealing with ideas rather than events. For example, when you consider the case of ,
Focus of the Course Object-Oriented Software Development
Border Layout, using Panels, Introduction to PinBallGame
Java Programming Language
Expanding the PinBallGame
Threads and concurrency / Safety
Presentation transcript:

Session 13 Pinball Game Construction Kit (Version 3):

Pinball Version 1 Replaced the fire button with a mouse event. Multiple balls can be in the air at once. –Uses a Vector to contain many balls Control is no longer in the paint method.

PinBall Version 2 Adds targets for the PinBalls to bounce off of and score on Types of targets: –Spring –Wall –Hole –ScorePad What do all targets have in common?

PinBallTarget Interface interface PinBallTarget { public boolean intersects (Ball aBall); public void moveTo (int x, int y); public void paint (Graphics g); public void hitBy (Ball aBall); } Why use an interface? –we want to process targets uniformly, e.g., check if a ball hit it –the interface makes them the same “type” for storage in a Vector

Hole target structurally similar to a ball –round like a ball –has a location on the frame like a ball behavioral –it must adhere to the interface class Hole extends Ball implements PinBallTarget Inherits moveTo and paint, but supplies intersects and hitBy

More on Threads We can think of separate threads as separate programs running concurrently. They don’t literally run at the same time (unless you have a machine with more than one CPU). Instead, one thread gets the CPU for a while, then it gets put on hold while another thread gets the CPU, and so on. When separate threads are running, sometimes we need to worry about two threads taking actions that conflict with one another. We can use the keyword synchronized to have the JVM help maintain order.

A Problem Caused by Separate Threads of Control

More on Threads Example: The second version of the pin ball game keeps track of the score the user earns for hitting targets in the field of play. It keeps track of the score in an instance variable named score: private int score = 0; When a pin ball strikes a target, the target tells the pin ball game to add its point total to the instance variable by sending an addScore message: public void addScore( int value ) { score = score + value; scoreLabel.setText( "score = " + score ); }

A Problem Caused by Separate Threads of Control

The solution synchronized public void addScore( int value ) { score = score + value; scoreLabel.setText( "score = " + score ); } The keyword synchronized is used to ask Java to guarantee that only one thread at a time can be executing the addScore () method.

PinBall Contruction Kit Version 3

Understanding the PinBallGame Kit How is the “black box” in the PinBallGame drawn? What is the difference between the items outside the box of the game window and the items inside the box? What messages can we send to a Peg, and where is each behavior defined? What method is used to determine the number of elements held in a Vector? What method is used to access the values? What method is used to insert a new value into the collection? What is the purpose of the PinBallTarget interface? Why can’t we do without it? Why is the PinBallGame instance stored in a class variable instead of an instance variable? (See class PinBallGame for the declaration, but study the code in class ScorePad to find the reason.)