D-House Renovation in Massachusetts by Bunker Workshop
Posted using ShareThis
Thursday, May 13, 2010
Thursday, April 1, 2010
Control Structures
Outline
4.1 Introduction
4.2 Algorithms
4.3 Pseudocode
4.4 Control Structures
4.5 The if Selection Structure
4.6 The if/else Selection Structure
4.7 The while Repetition Structure
4.8 Formulating Algorithms: Case Study 1 (Counter- Controlled Repetition)4.9 Formulating Algorithms with Top-Down, Stepwise Refinement: Case Study 2 (Sentinel-Controlled Repetition)
4.10 Formulating Algorithms with Top-Down, Stepwise Refinement: Case Study 3 (Nested Control Structures)
4.11 Assignment Operators
4.12 Increment and Decrement Operators
4.13 Primitive Data Types
4.14 (Optional Case Study) Thinking About Objects: Identifying Class Attributes
4.1 Introduction
We learn about Control Structures
Structured-programming principle
Control structures help build and manipulate objects
4.2 Algorithms
Algorithm
Series of actions in specific order
The actions executed
The order in which actions execute
Program control
Specifying the order in which actions execute
Control structures help specify this order
4.3 Pseudocode
Pseudocode
Informal language for developing algorithms
Not executed on computers
Helps developers “think out” algorithms
4.1 Introduction
4.2 Algorithms
4.3 Pseudocode
4.4 Control Structures
4.5 The if Selection Structure
4.6 The if/else Selection Structure
4.7 The while Repetition Structure
4.8 Formulating Algorithms: Case Study 1 (Counter- Controlled Repetition)4.9 Formulating Algorithms with Top-Down, Stepwise Refinement: Case Study 2 (Sentinel-Controlled Repetition)
4.10 Formulating Algorithms with Top-Down, Stepwise Refinement: Case Study 3 (Nested Control Structures)
4.11 Assignment Operators
4.12 Increment and Decrement Operators
4.13 Primitive Data Types
4.14 (Optional Case Study) Thinking About Objects: Identifying Class Attributes
4.1 Introduction
We learn about Control Structures
Structured-programming principle
Control structures help build and manipulate objects
4.2 Algorithms
Algorithm
Series of actions in specific order
The actions executed
The order in which actions execute
Program control
Specifying the order in which actions execute
Control structures help specify this order
4.3 Pseudocode
Pseudocode
Informal language for developing algorithms
Not executed on computers
Helps developers “think out” algorithms
Wednesday, March 31, 2010
Introduction to Java Applets
Outline
3.1 Introduction
3.2 Sample Applets from the Java 2 Software Development Kit
3.2.1 The TicTacToe Applet
3.2.2 The DrawTest Applet
3.2.3 The Java2D Applet
3.3 A Simple Java Applet: Drawing a String
3.3.1 Compiling and Executing WelcomeApplet
3.4 Two More Simple Applets: Drawing Strings and Lines
3.5 Another Java Applet: Adding Floating-Point Numbers
3.6 Viewing Applets in a Web Browser
3.6.1 Viewing Applets in Netscape Navigator 6
3.6.2 Viewing Applets in Other Browsers Using the Java Plug-In
3.7 Java Applet Internet and World Wide Web Resources
3.8 (Optional Case Study) Thinking About Objects: Identifying the Classes in a Problem Statement
3.1 Introduction
Applet
Program that runs in
appletviewer (test utility for applets)
Web browser (IE, Communicator)
Executes when HTML (Hypertext Markup Language) document containing applet is opened and downloaded
Applications run in command windows
Notes
Mimic several features of Chapter 2 to reinforce them
Focus on fundamental programming concepts first
Explanations will come later
3.2 Sample Applets from the Java 2 Software Development Kit
Sample Applets
Provided in Java 2 Software Development Kit (J2SDK)
Source code included (.java files)
Study and mimic source code to learn new features
All programmers begin by mimicking existing programs
Located in demo directory of J2SDK install
Can download demos and J2SDK from
java.sun.com/products/jdk/1.3/
3.2.1 The TicTacToe Applet
Running applets
In command prompt, change to demo subdirectory of applet
cd c:\jdk1.3\demo\applets
cd appletDirectoryName
There will be an HTML file used to execute applet
Type appletviewer example1.html
appletviewer loads the html file specified as its command-line argument
From the HTML file, determines which applet to load (more section 3.3)
Applet will run, Reload and Quit commands under Applet menu
3.3 A Simple Java Applet: Drawing a String
Now, create applets of our own
Take a while before we can write applets like in the demos
Cover many of same techniques
Upcoming program
Create an applet to display
"Welcome to Java Programming!"
Show applet and HTML file, then discuss them line by line
1 // Fig. 3.6: WelcomeApplet.java
2 // A first applet in Java.
3
4 // Java core packages
5 import java.awt.Graphics; // import class Graphics
6
7 // Java extension packages
8 import javax.swing.JApplet; // import class JApplet
9
10 public class WelcomeApplet extends JApplet {
11
12 // draw text on applet’s background
13 public void paint( Graphics g )
14 {
15 // call inherited version of method paint
16 super.paint( g );
17
18 // draw a String at x-coordinate 25 and y-coordinate 25
19 g.drawString( "Welcome to Java Programming!", 25, 25 );
20
21 } // end method paint
22
23 } // end class WelcomeApplet
3.3 A Simple Java Applet: Drawing a String
Comments
Name of source code and description of applet
Import predefined classes grouped into packages
import statements tell compiler where to locate classes used
When you create applets, import the JApplet class (package javax.swing)
import the Graphics class (package java.awt) to draw graphics
Can draw lines, rectangles ovals, strings of characters
import specifies directory structure
3.3 A Simple Java Applet: Drawing a String
Applets have at least one class definition (like applications)
Rarely create classes from scratch
Use pieces of existing class definitions
Inheritance - create new classes from old ones (ch. 15)
Begins class definition for class WelcomeApplet
Keyword class then class name
extends followed by class name
Indicates class to inherit from (JApplet)
JApplet : superclass (base class)
WelcomeApplet : subclass (derived class)
WelcomeApplet now has methods and data of JApplet
3.3 A Simple Java Applet: Drawing a String
Class JApplet defined for us
Someone else defined "what it means to be an applet"
Applets require over 200 methods!
extends JApplet
Inherit methods, do not have to define them all
Do not need to know every detail of class JApplet
3.3 A Simple Java Applet: Drawing a String
Class WelcomeApplet is a blueprint
appletviewer or browser creates an object of class WelcomeApplet
Keyword public required
File can only have one public class
public class name must be file name
3.3 A Simple Java Applet: Drawing a String
Class WelcomeApplet is a blueprint
appletviewer or browser creates an object of class WelcomeApplet
Keyword public required
File can only have one public class
public class name must be file name
3.3 A Simple Java Applet: Drawing a String
Our class inherits method paint from JApplet
By default, paint has empty body
Override (redefine) paint in our class
Methods paint, init, and start
Guaranteed to be called automatically
Our applet gets "free" version of these by inheriting from JApplet
Free versions have empty body (do nothing)
Every applet does not need all three methods
Override the ones you need
Applet container “draws itself” by calling method paint
3.3 A Simple Java Applet: Drawing a String
Method paint
Lines 13-21 are the definition of paint
Draws graphics on screen
void indicates paint returns nothing when finishes task
Parenthesis define parameter list - where methods receive data to perform tasks
Normally, data passed by programmer, as in JOptionPane.showMessageDialog
paint gets parameters automatically
Graphics object used by paint
Mimic paint's first line
3.3 A Simple Java Applet: Drawing a String
Calls version of method paint from superclass JApplet
Should be first statement in every applet’s paint method
Body of paint
Method drawString (of class Graphics)
Called using Graphics object g and dot operator (.)
Method name, then parenthesis with arguments
First argument: String to draw
Second: x coordinate (in pixels) location
Third: y coordinate (in pixels) location
Java coordinate system
Measured in pixels (picture elements)
Upper left is (0,0)
3.3.1 Compiling and Executing WelcomeApplet
Running the applet
Compile
javac WelcomeApplet.java
If no errors, bytecodes stored in WelcomeApplet.class
Create an HTML file
Loads the applet into appletviewer or a browser
Ends in .htm or .html
To execute an applet
Create an HTML file indicating which applet the browser (or appletviewer) should load and execute
3.3.1 Compiling and Executing WelcomeApplet
2
4
Simple HTML file (WelcomeApplet.html)
Usually in same directory as .class file
Remember, .class file created after compilation
HTML codes (tags)
Usually come in pairs
Begin with < and end with >
Lines 1 and 4 - begin and end the HTML tags
Line 2 - begins
3.1 Introduction
3.2 Sample Applets from the Java 2 Software Development Kit
3.2.1 The TicTacToe Applet
3.2.2 The DrawTest Applet
3.2.3 The Java2D Applet
3.3 A Simple Java Applet: Drawing a String
3.3.1 Compiling and Executing WelcomeApplet
3.4 Two More Simple Applets: Drawing Strings and Lines
3.5 Another Java Applet: Adding Floating-Point Numbers
3.6 Viewing Applets in a Web Browser
3.6.1 Viewing Applets in Netscape Navigator 6
3.6.2 Viewing Applets in Other Browsers Using the Java Plug-In
3.7 Java Applet Internet and World Wide Web Resources
3.8 (Optional Case Study) Thinking About Objects: Identifying the Classes in a Problem Statement
3.1 Introduction
Applet
Program that runs in
appletviewer (test utility for applets)
Web browser (IE, Communicator)
Executes when HTML (Hypertext Markup Language) document containing applet is opened and downloaded
Applications run in command windows
Notes
Mimic several features of Chapter 2 to reinforce them
Focus on fundamental programming concepts first
Explanations will come later
3.2 Sample Applets from the Java 2 Software Development Kit
Sample Applets
Provided in Java 2 Software Development Kit (J2SDK)
Source code included (.java files)
Study and mimic source code to learn new features
All programmers begin by mimicking existing programs
Located in demo directory of J2SDK install
Can download demos and J2SDK from
java.sun.com/products/jdk/1.3/
3.2.1 The TicTacToe Applet
Running applets
In command prompt, change to demo subdirectory of applet
cd c:\jdk1.3\demo\applets
cd appletDirectoryName
There will be an HTML file used to execute applet
Type appletviewer example1.html
appletviewer loads the html file specified as its command-line argument
From the HTML file, determines which applet to load (more section 3.3)
Applet will run, Reload and Quit commands under Applet menu
3.3 A Simple Java Applet: Drawing a String
Now, create applets of our own
Take a while before we can write applets like in the demos
Cover many of same techniques
Upcoming program
Create an applet to display
"Welcome to Java Programming!"
Show applet and HTML file, then discuss them line by line
1 // Fig. 3.6: WelcomeApplet.java
2 // A first applet in Java.
3
4 // Java core packages
5 import java.awt.Graphics; // import class Graphics
6
7 // Java extension packages
8 import javax.swing.JApplet; // import class JApplet
9
10 public class WelcomeApplet extends JApplet {
11
12 // draw text on applet’s background
13 public void paint( Graphics g )
14 {
15 // call inherited version of method paint
16 super.paint( g );
17
18 // draw a String at x-coordinate 25 and y-coordinate 25
19 g.drawString( "Welcome to Java Programming!", 25, 25 );
20
21 } // end method paint
22
23 } // end class WelcomeApplet
3.3 A Simple Java Applet: Drawing a String
Comments
Name of source code and description of applet
Import predefined classes grouped into packages
import statements tell compiler where to locate classes used
When you create applets, import the JApplet class (package javax.swing)
import the Graphics class (package java.awt) to draw graphics
Can draw lines, rectangles ovals, strings of characters
import specifies directory structure
3.3 A Simple Java Applet: Drawing a String
Applets have at least one class definition (like applications)
Rarely create classes from scratch
Use pieces of existing class definitions
Inheritance - create new classes from old ones (ch. 15)
Begins class definition for class WelcomeApplet
Keyword class then class name
extends followed by class name
Indicates class to inherit from (JApplet)
JApplet : superclass (base class)
WelcomeApplet : subclass (derived class)
WelcomeApplet now has methods and data of JApplet
3.3 A Simple Java Applet: Drawing a String
Class JApplet defined for us
Someone else defined "what it means to be an applet"
Applets require over 200 methods!
extends JApplet
Inherit methods, do not have to define them all
Do not need to know every detail of class JApplet
3.3 A Simple Java Applet: Drawing a String
Class WelcomeApplet is a blueprint
appletviewer or browser creates an object of class WelcomeApplet
Keyword public required
File can only have one public class
public class name must be file name
3.3 A Simple Java Applet: Drawing a String
Class WelcomeApplet is a blueprint
appletviewer or browser creates an object of class WelcomeApplet
Keyword public required
File can only have one public class
public class name must be file name
3.3 A Simple Java Applet: Drawing a String
Our class inherits method paint from JApplet
By default, paint has empty body
Override (redefine) paint in our class
Methods paint, init, and start
Guaranteed to be called automatically
Our applet gets "free" version of these by inheriting from JApplet
Free versions have empty body (do nothing)
Every applet does not need all three methods
Override the ones you need
Applet container “draws itself” by calling method paint
3.3 A Simple Java Applet: Drawing a String
Method paint
Lines 13-21 are the definition of paint
Draws graphics on screen
void indicates paint returns nothing when finishes task
Parenthesis define parameter list - where methods receive data to perform tasks
Normally, data passed by programmer, as in JOptionPane.showMessageDialog
paint gets parameters automatically
Graphics object used by paint
Mimic paint's first line
3.3 A Simple Java Applet: Drawing a String
Calls version of method paint from superclass JApplet
Should be first statement in every applet’s paint method
Body of paint
Method drawString (of class Graphics)
Called using Graphics object g and dot operator (.)
Method name, then parenthesis with arguments
First argument: String to draw
Second: x coordinate (in pixels) location
Third: y coordinate (in pixels) location
Java coordinate system
Measured in pixels (picture elements)
Upper left is (0,0)
3.3.1 Compiling and Executing WelcomeApplet
Running the applet
Compile
javac WelcomeApplet.java
If no errors, bytecodes stored in WelcomeApplet.class
Create an HTML file
Loads the applet into appletviewer or a browser
Ends in .htm or .html
To execute an applet
Create an HTML file indicating which applet the browser (or appletviewer) should load and execute
3.3.1 Compiling and Executing WelcomeApplet
2
4
Simple HTML file (WelcomeApplet.html)
Usually in same directory as .class file
Remember, .class file created after compilation
HTML codes (tags)
Usually come in pairs
Begin with < and end with >
Lines 1 and 4 - begin and end the HTML tags
Line 2 - begins
Appendix G – Elevator Events and Listener Interfaces
Outline
G.1 Introduction
G.2 Events
G.3 Listeners
G.4 Component Diagrams Revisited
G.1 (Introduction)
Event handling
Object register as “listeners” for events
The class of that object must implement a “listener” interface
G.2 (Events)
Figures G.1-G.7 contain system events
Each event inherits from class ElevatorModelEvent
// ElevatorModelEvent.java
2 // Basic event packet in Elevator simulation
3 package com.deitel.jhtp4.elevator.event;
4
5 // Deitel packages
6 import com.deitel.jhtp4.elevator.model.*;
7
8 public class ElevatorModelEvent {
9
10 // Location where ElevatorModelEvent was generated
11 private Location location;
12
13 // source Object that generated ElevatorModelEvent
14 private Object source;
15
16 // ElevatorModelEvent constructor sets Location
17 public ElevatorModelEvent( Object source, Location location )
18 {
19 setSource( source );
20 setLocation( location );
21 }
22
23 // set ElevatorModelEvent Location
24 public void setLocation( Location eventLocation )
25 {
26 location = eventLocation;
27 }
28
29 // get ElevatorModelEvent Location
30 public Location getLocation()
31 {
32 return location;
33 }
// set ElevatorModelEvent source
36 private void setSource( Object eventSource )
37 {
38 source = eventSource;
39 }
40
41 // get ElevatorModelEvent source
42 public Object getSource()
43 {
44 return source;
45 }
46 }
// BellEvent.java
2 // Indicates that Bell has rung
3 package com.deitel.jhtp4.elevator.event;
4
5 // Deitel packages
6 import com.deitel.jhtp4.elevator.model*;
7
8 public class BellEvent extends ElevatorModelEvent {
9
10 // BellEvent constructor
11 public BellEvent( Object source, Location location )
12 {
13 super( source, location );
14 }
15 }
// ButtonEvent.java
2 // Indicates that a Button has changed state
3 package com.deitel.jhtp4.elevator.event;
4
5 // Deitel packages
6 import com.deitel.jhtp4.elevator.model.*;
7
8 public class ButtonEvent extends ElevatorModelEvent {
9
10 // ButtonEvent constructor
11 public ButtonEvent( Object source, Location location )
12 {
13 super( source, location );
14 }
15 }
// DoorEvent.java
2 // Indicates that a Door has changed state
3 package com.deitel.jhtp4.elevator.event;
4
5 // Deitel packages
6 import com.deitel.jhtp4.elevator.model.*;
7
8 public class DoorEvent extends ElevatorModelEvent {
9
10 // DoorEvent constructor
11 public DoorEvent( Object source, Location location )
12 {
13 super( source, location );
14 }
15 }
// ElevatorMoveEvent.java
2 // Indicates on which Floor the Elevator arrived or departed
3 package com.deitel.jhtp4.elevator.event;
4
5 // Deitel packages
6 import com.deitel.jhtp4.elevator.model.*;
7
8 public class ElevatorMoveEvent extends ElevatorModelEvent {
9
10 // ElevatorMoveEvent constructor
11 public ElevatorMoveEvent( Object source, Location location )
12 {
13 super( source, location );
14 }
15 }
// LightEvent.java
2 // Indicates on which Floor the Light has changed state
3 package com.deitel.jhtp4.elevator.event;
4
5 // Deitel packages
6 import com.deitel.jhtp4.elevator.model.*;
7
8 public class LightEvent extends ElevatorModelEvent {
9
10 // LightEvent constructor
11 public LightEvent( Object source, Location location )
12 {
13 super( source, location );
14 }
15 }
// PersonMoveEvent.java
2 // Indicates that a Person has moved
3 package com.deitel.jhtp4.elevator.event;
4
5 // Deitel packages
6 import com.deitel.jhtp4.elevator.model.*;
7
8 public class PersonMoveEvent extends ElevatorModelEvent {
9
10 // identifier of Person sending Event
11 private int ID;
12
13 // PersonMoveEvent constructor
14 public PersonMoveEvent( Object source, Location location,
15 int identifier )
16 {
17 super( source, location );
18 ID = identifier;
19 }
20
21 // return identifier
22 public int getID()
23 {
24 return( ID );
25 }
26 }
G.3 (Listeners)
// BellListener.java
2 // Method invoked when Bell has rung
3 package com.deitel.jhtp4.elevator.event;
4
5 public interface BellListener {
6
7 // invoked when Bell has rung
8 public void bellRang( BellEvent bellEvent );
9 }
// ButtonListener.java
2 // Methods invoked when Button has been either pressed or reset
3 package com.deitel.jhtp4.elevator.event;
4
5 public interface ButtonListener {
6
7 // invoked when Button has been pressed
8 public void buttonPressed( ButtonEvent buttonEvent );
9
10 // invoked when Button has been reset
11 public void buttonReset( ButtonEvent buttonEvent );
12 }
// DoorListener.java
2 // Methods invoked when Door has either opened or closed
3 package com.deitel.jhtp4.elevator.event;
4
5 public interface DoorListener {
6
7 // invoked when Door has opened
8 public void doorOpened( DoorEvent doorEvent );
9
10 // invoked when Door has closed
11 public void doorClosed( DoorEvent doorEvent );
12 }
// ElevatorMoveListener.java
2 // Methods invoked when Elevator has either departed or arrived
3 package com.deitel.jhtp4.elevator.event;
4
5 public interface ElevatorMoveListener {
6
7 // invoked when Elevator has departed
8 public void elevatorDeparted( ElevatorMoveEvent moveEvent );
9
10 // invoked when Elevator has arrived
11 public void elevatorArrived( ElevatorMoveEvent moveEvent );
12 }
// LightListener.java
2 // Methods invoked when Light has either turned on or off
3 package com.deitel.jhtp4.elevator.event;
4
5 public interface LightListener {
6
7 // invoked when Light has turned on
8 public void lightTurnedOn( LightEvent lightEvent );
9
10 // invoked when Light has turned off
11 public void lightTurnedOff( LightEvent lightEvent );
12 }
// PersonMoveListener.java
2 // Methods invoked when Person moved
3 package com.deitel.jhtp4.elevator.event;
4
5 public interface PersonMoveListener {
6
7 // invoked when Person has been instantiated in model
8 public void personCreated( PersonMoveEvent moveEvent );
9
10 // invoked when Person arrived at elevator
11 public void personArrived( PersonMoveEvent moveEvent );
12
13 // invoked when Person departed from elevator
14 public void personDeparted( PersonMoveEvent moveEvent );
15
16 // invoked when Person pressed Button
17 public void personPressedButton(
18 PersonMoveEvent moveEvent );
19
20 // invoked when Person entered Elevator
21 public void personEntered( PersonMoveEvent moveEvent );
22
23 // invoked when Person exited simulation
24 public void personExited( PersonMoveEvent moveEvent );
25 }
// ElevatorModelListener.java
2 // Listener for ElevatorView from ElevatorModel
3 package com.deitel.jhtp4.elevator.event;
4
5 // ElevatorModelListener inherits all Listener interfaces
6 public interface ElevatorModelListener extends BellListener,
7 ButtonListener, DoorListener, ElevatorMoveListener,
8 LightListener, PersonMoveListener {
9 }
G.4 (Component Diagrams Revisited)
Component diagram for events
Components in package event
Each component maps to a class in Figure G.1-G.14
ElevatorView.java aggregates package event
In Java, class ElevatorView imports package event
Package model aggregates package event
In Java, each class in model imports package event
G.1 Introduction
G.2 Events
G.3 Listeners
G.4 Component Diagrams Revisited
G.1 (Introduction)
Event handling
Object register as “listeners” for events
The class of that object must implement a “listener” interface
G.2 (Events)
Figures G.1-G.7 contain system events
Each event inherits from class ElevatorModelEvent
// ElevatorModelEvent.java
2 // Basic event packet in Elevator simulation
3 package com.deitel.jhtp4.elevator.event;
4
5 // Deitel packages
6 import com.deitel.jhtp4.elevator.model.*;
7
8 public class ElevatorModelEvent {
9
10 // Location where ElevatorModelEvent was generated
11 private Location location;
12
13 // source Object that generated ElevatorModelEvent
14 private Object source;
15
16 // ElevatorModelEvent constructor sets Location
17 public ElevatorModelEvent( Object source, Location location )
18 {
19 setSource( source );
20 setLocation( location );
21 }
22
23 // set ElevatorModelEvent Location
24 public void setLocation( Location eventLocation )
25 {
26 location = eventLocation;
27 }
28
29 // get ElevatorModelEvent Location
30 public Location getLocation()
31 {
32 return location;
33 }
// set ElevatorModelEvent source
36 private void setSource( Object eventSource )
37 {
38 source = eventSource;
39 }
40
41 // get ElevatorModelEvent source
42 public Object getSource()
43 {
44 return source;
45 }
46 }
// BellEvent.java
2 // Indicates that Bell has rung
3 package com.deitel.jhtp4.elevator.event;
4
5 // Deitel packages
6 import com.deitel.jhtp4.elevator.model*;
7
8 public class BellEvent extends ElevatorModelEvent {
9
10 // BellEvent constructor
11 public BellEvent( Object source, Location location )
12 {
13 super( source, location );
14 }
15 }
// ButtonEvent.java
2 // Indicates that a Button has changed state
3 package com.deitel.jhtp4.elevator.event;
4
5 // Deitel packages
6 import com.deitel.jhtp4.elevator.model.*;
7
8 public class ButtonEvent extends ElevatorModelEvent {
9
10 // ButtonEvent constructor
11 public ButtonEvent( Object source, Location location )
12 {
13 super( source, location );
14 }
15 }
// DoorEvent.java
2 // Indicates that a Door has changed state
3 package com.deitel.jhtp4.elevator.event;
4
5 // Deitel packages
6 import com.deitel.jhtp4.elevator.model.*;
7
8 public class DoorEvent extends ElevatorModelEvent {
9
10 // DoorEvent constructor
11 public DoorEvent( Object source, Location location )
12 {
13 super( source, location );
14 }
15 }
// ElevatorMoveEvent.java
2 // Indicates on which Floor the Elevator arrived or departed
3 package com.deitel.jhtp4.elevator.event;
4
5 // Deitel packages
6 import com.deitel.jhtp4.elevator.model.*;
7
8 public class ElevatorMoveEvent extends ElevatorModelEvent {
9
10 // ElevatorMoveEvent constructor
11 public ElevatorMoveEvent( Object source, Location location )
12 {
13 super( source, location );
14 }
15 }
// LightEvent.java
2 // Indicates on which Floor the Light has changed state
3 package com.deitel.jhtp4.elevator.event;
4
5 // Deitel packages
6 import com.deitel.jhtp4.elevator.model.*;
7
8 public class LightEvent extends ElevatorModelEvent {
9
10 // LightEvent constructor
11 public LightEvent( Object source, Location location )
12 {
13 super( source, location );
14 }
15 }
// PersonMoveEvent.java
2 // Indicates that a Person has moved
3 package com.deitel.jhtp4.elevator.event;
4
5 // Deitel packages
6 import com.deitel.jhtp4.elevator.model.*;
7
8 public class PersonMoveEvent extends ElevatorModelEvent {
9
10 // identifier of Person sending Event
11 private int ID;
12
13 // PersonMoveEvent constructor
14 public PersonMoveEvent( Object source, Location location,
15 int identifier )
16 {
17 super( source, location );
18 ID = identifier;
19 }
20
21 // return identifier
22 public int getID()
23 {
24 return( ID );
25 }
26 }
G.3 (Listeners)
// BellListener.java
2 // Method invoked when Bell has rung
3 package com.deitel.jhtp4.elevator.event;
4
5 public interface BellListener {
6
7 // invoked when Bell has rung
8 public void bellRang( BellEvent bellEvent );
9 }
// ButtonListener.java
2 // Methods invoked when Button has been either pressed or reset
3 package com.deitel.jhtp4.elevator.event;
4
5 public interface ButtonListener {
6
7 // invoked when Button has been pressed
8 public void buttonPressed( ButtonEvent buttonEvent );
9
10 // invoked when Button has been reset
11 public void buttonReset( ButtonEvent buttonEvent );
12 }
// DoorListener.java
2 // Methods invoked when Door has either opened or closed
3 package com.deitel.jhtp4.elevator.event;
4
5 public interface DoorListener {
6
7 // invoked when Door has opened
8 public void doorOpened( DoorEvent doorEvent );
9
10 // invoked when Door has closed
11 public void doorClosed( DoorEvent doorEvent );
12 }
// ElevatorMoveListener.java
2 // Methods invoked when Elevator has either departed or arrived
3 package com.deitel.jhtp4.elevator.event;
4
5 public interface ElevatorMoveListener {
6
7 // invoked when Elevator has departed
8 public void elevatorDeparted( ElevatorMoveEvent moveEvent );
9
10 // invoked when Elevator has arrived
11 public void elevatorArrived( ElevatorMoveEvent moveEvent );
12 }
// LightListener.java
2 // Methods invoked when Light has either turned on or off
3 package com.deitel.jhtp4.elevator.event;
4
5 public interface LightListener {
6
7 // invoked when Light has turned on
8 public void lightTurnedOn( LightEvent lightEvent );
9
10 // invoked when Light has turned off
11 public void lightTurnedOff( LightEvent lightEvent );
12 }
// PersonMoveListener.java
2 // Methods invoked when Person moved
3 package com.deitel.jhtp4.elevator.event;
4
5 public interface PersonMoveListener {
6
7 // invoked when Person has been instantiated in model
8 public void personCreated( PersonMoveEvent moveEvent );
9
10 // invoked when Person arrived at elevator
11 public void personArrived( PersonMoveEvent moveEvent );
12
13 // invoked when Person departed from elevator
14 public void personDeparted( PersonMoveEvent moveEvent );
15
16 // invoked when Person pressed Button
17 public void personPressedButton(
18 PersonMoveEvent moveEvent );
19
20 // invoked when Person entered Elevator
21 public void personEntered( PersonMoveEvent moveEvent );
22
23 // invoked when Person exited simulation
24 public void personExited( PersonMoveEvent moveEvent );
25 }
// ElevatorModelListener.java
2 // Listener for ElevatorView from ElevatorModel
3 package com.deitel.jhtp4.elevator.event;
4
5 // ElevatorModelListener inherits all Listener interfaces
6 public interface ElevatorModelListener extends BellListener,
7 ButtonListener, DoorListener, ElevatorMoveListener,
8 LightListener, PersonMoveListener {
9 }
G.4 (Component Diagrams Revisited)
Component diagram for events
Components in package event
Each component maps to a class in Figure G.1-G.14
ElevatorView.java aggregates package event
In Java, class ElevatorView imports package event
Package model aggregates package event
In Java, each class in model imports package event
Thursday, March 25, 2010
How to programe java
Chapter 1 – Introduction to Computers, the Internet, and the Web
1.1 Introduction
1.2 What Is a Computer?
1.3 Computer Organization
1.4 Evolution of Operating Systems
1.5 Personal, Distributed and Client/Server Computing
1.6 Machine Languages, Assembly Languages and High-Level Languages
1.7 History of C++
1.8 History of Java
1.9 Java Class Libraries
1.10 Other High-Level Languages
1.11 Structured Programming
1.12 The Internet and the World Wide Web
1.13 Basics of a Typical Java Environment
1.14 General Notes about Java and This Book
1.15 Thinking About Objects: Introduction to Object Technology and the Unified Modeling Language
1.16 Discovering Design Patterns: Introduction
1.17 Tour of the Book
1.18 (Optional) A Tour of the Case Study on Object-Oriented Design with the UML1.19 (Optional) A Tour of the “Discovering Design Patterns” Sections
1.2 What Is a Computer?
Computer.........
Performs computations and makes logical decisions
Millions / billions times faster than human beings
Computer programs............
Sets of instructions for which computer processes data
Hardware.........
Physical devices of computer system
Software..........
Programs that run on computers
1.3 Computer Organization
Six logical units of computer system........
(Input unit)
Mouse, keyboard
(Output unit)
Printer, monitor, audio speakers
(Memory unit)
RAM
(Arithmetic and logic unit (ALU))
Performs calculations
(Central processing unit (CPU))
Supervises operation of other devices
(Secondary storage unit)
Hard drives, floppy drives
1.4 Evolution of Operating Systems
Batch processing.........
One job (task) at a time
Operating systems developed...........
Programs to make computers more convenient to use
Switch jobs easier
Multiprogramming............
“Simultaneous” jobs
Timesharing operating systems
1.5 Personal, Distributed and Client/Server Computing
Personal computing........
Computers for personal use
Distributed computing........
Computing performed among several computers
Client/server computing............
Servers offer common store of programs and data
Clients access programs and data from server
1.6 Machine Languages, Assembly Languages and High-Level Languages
Machine language.........
“Natural language” of computer component
Machine dependent
Assembly language..........
English-like abbreviations represent computer operations
Translator programs convert to machine language
High-level language..........
Allows for writing more “English-like” instructions
Contains commonly used mathematical operations
Compiler convert to machine language
Interpreter............
Execute high-level language programs without compilation
1.7 History of C++
C++..........
Evolved from C
Evolved from BCPL and B
Provides object-oriented programming capabilities
Objects..........
Reusable software components that model real-world items
1.8 History of Java
Java...................
Originally for intelligent consumer-electronic devices
Then used for creating Web pages with dynamic content
Now also used for:
Develop large-scale enterprise applications
Enhance WWW server functionality
Provide applications for consumer devices (cell phones, etc.)
1.9 Java Class Libraries
Classes..........
Contain methods that perform tasks
Return information after task completion
Used to build Java programs
Java contains class libraries..........
Known as Java APIs (Application Programming Interfaces)
1.10 Other High-Level Languages
Fortran......
FORmula TRANslator
COBOL........
COmmon Business Oriented Language
Pascal.......
Basic........
1.11 Structured Programming
Structured Programming.........
Structured programs
Clearer than unstructured programs
Easier to test, debug and modify
Pascal designed for teaching structured programming
ADA
Multitasking
C
1.12 The Internet and the World Wide Web
Internet.............
Developed over three decades ago with DOD funding
Originally for connecting few main computer systems
Now accessible by hundreds of millions of computers
World Wide Web (WWW)...........
Allows for locating/viewing multimedia-based documents
1.13 Basics of a Typical Java Environment
Java systems contain.........
Environment
Language
APIs
Class libraries
1.14 General Notes about Java and This Book
Geared for novice programmers......
We stress clarity.........
1.15 Thinking About Objects: Introduction to Object Technology and the Unified Modeling Language
Object orientation.........
Unified Modeling Language (UML).........
Graphical language that uses common notation
Allows developers to represent object-oriented designs
1.15 Thinking About Objects (cont.)
History of the UML..........
Need developed for process with which to approach OOAD
Brainchild of Booch, Rumbaugh and Jacobson
Object Management Group (OMG) supervised
Version 1.4 is current version
Version 2.0 scheduled tentatively for release in 2002
1.16 Discovering Design Patterns: Introduction
Effective design crucial for large programs..........
Design patterns.............
Proven architectures for developing object-oriented software
Architectures created from accumulated industry experience
Reduce design-process complexity
Promotes design reuse in future systems
Helps identify common design mistakes and pitfalls
Helps design independently of implementation language
Establishes common design “vocabulary”
Shortens design phase in software-development process
1.16 Discovering Design Patterns (cont.)
History of Design Patterns...........
Gamma, Helm, Johnson and Vlissides
“Gang of Four”
Design Patterns, Elements of Reusable Object-Oriented Software (Addison Wesley: 1995)
Established 23 design patterns
Creational
Instantiate objects
Structural
Organize classes and objects
Behavioral
Assign responsibilities to objects
This is end of chapter 1
1.1 Introduction
1.2 What Is a Computer?
1.3 Computer Organization
1.4 Evolution of Operating Systems
1.5 Personal, Distributed and Client/Server Computing
1.6 Machine Languages, Assembly Languages and High-Level Languages
1.7 History of C++
1.8 History of Java
1.9 Java Class Libraries
1.10 Other High-Level Languages
1.11 Structured Programming
1.12 The Internet and the World Wide Web
1.13 Basics of a Typical Java Environment
1.14 General Notes about Java and This Book
1.15 Thinking About Objects: Introduction to Object Technology and the Unified Modeling Language
1.16 Discovering Design Patterns: Introduction
1.17 Tour of the Book
1.18 (Optional) A Tour of the Case Study on Object-Oriented Design with the UML1.19 (Optional) A Tour of the “Discovering Design Patterns” Sections
1.2 What Is a Computer?
Computer.........
Performs computations and makes logical decisions
Millions / billions times faster than human beings
Computer programs............
Sets of instructions for which computer processes data
Hardware.........
Physical devices of computer system
Software..........
Programs that run on computers
1.3 Computer Organization
Six logical units of computer system........
(Input unit)
Mouse, keyboard
(Output unit)
Printer, monitor, audio speakers
(Memory unit)
RAM
(Arithmetic and logic unit (ALU))
Performs calculations
(Central processing unit (CPU))
Supervises operation of other devices
(Secondary storage unit)
Hard drives, floppy drives
1.4 Evolution of Operating Systems
Batch processing.........
One job (task) at a time
Operating systems developed...........
Programs to make computers more convenient to use
Switch jobs easier
Multiprogramming............
“Simultaneous” jobs
Timesharing operating systems
1.5 Personal, Distributed and Client/Server Computing
Personal computing........
Computers for personal use
Distributed computing........
Computing performed among several computers
Client/server computing............
Servers offer common store of programs and data
Clients access programs and data from server
1.6 Machine Languages, Assembly Languages and High-Level Languages
Machine language.........
“Natural language” of computer component
Machine dependent
Assembly language..........
English-like abbreviations represent computer operations
Translator programs convert to machine language
High-level language..........
Allows for writing more “English-like” instructions
Contains commonly used mathematical operations
Compiler convert to machine language
Interpreter............
Execute high-level language programs without compilation
1.7 History of C++
C++..........
Evolved from C
Evolved from BCPL and B
Provides object-oriented programming capabilities
Objects..........
Reusable software components that model real-world items
1.8 History of Java
Java...................
Originally for intelligent consumer-electronic devices
Then used for creating Web pages with dynamic content
Now also used for:
Develop large-scale enterprise applications
Enhance WWW server functionality
Provide applications for consumer devices (cell phones, etc.)
1.9 Java Class Libraries
Classes..........
Contain methods that perform tasks
Return information after task completion
Used to build Java programs
Java contains class libraries..........
Known as Java APIs (Application Programming Interfaces)
1.10 Other High-Level Languages
Fortran......
FORmula TRANslator
COBOL........
COmmon Business Oriented Language
Pascal.......
Basic........
1.11 Structured Programming
Structured Programming.........
Structured programs
Clearer than unstructured programs
Easier to test, debug and modify
Pascal designed for teaching structured programming
ADA
Multitasking
C
1.12 The Internet and the World Wide Web
Internet.............
Developed over three decades ago with DOD funding
Originally for connecting few main computer systems
Now accessible by hundreds of millions of computers
World Wide Web (WWW)...........
Allows for locating/viewing multimedia-based documents
1.13 Basics of a Typical Java Environment
Java systems contain.........
Environment
Language
APIs
Class libraries
1.14 General Notes about Java and This Book
Geared for novice programmers......
We stress clarity.........
1.15 Thinking About Objects: Introduction to Object Technology and the Unified Modeling Language
Object orientation.........
Unified Modeling Language (UML).........
Graphical language that uses common notation
Allows developers to represent object-oriented designs
1.15 Thinking About Objects (cont.)
History of the UML..........
Need developed for process with which to approach OOAD
Brainchild of Booch, Rumbaugh and Jacobson
Object Management Group (OMG) supervised
Version 1.4 is current version
Version 2.0 scheduled tentatively for release in 2002
1.16 Discovering Design Patterns: Introduction
Effective design crucial for large programs..........
Design patterns.............
Proven architectures for developing object-oriented software
Architectures created from accumulated industry experience
Reduce design-process complexity
Promotes design reuse in future systems
Helps identify common design mistakes and pitfalls
Helps design independently of implementation language
Establishes common design “vocabulary”
Shortens design phase in software-development process
1.16 Discovering Design Patterns (cont.)
History of Design Patterns...........
Gamma, Helm, Johnson and Vlissides
“Gang of Four”
Design Patterns, Elements of Reusable Object-Oriented Software (Addison Wesley: 1995)
Established 23 design patterns
Creational
Instantiate objects
Structural
Organize classes and objects
Behavioral
Assign responsibilities to objects
This is end of chapter 1
Subscribe to:
Comments (Atom)