Thursday, May 13, 2010

D-House Renovation in Massachusetts by Bunker Workshop

D-House Renovation in Massachusetts by Bunker Workshop

Posted using ShareThis

Shanghai Expo 2010

Shanghai Expo 2010

Posted using ShareThis

Engraved Bamboo iPhone Cases by Grove

Engraved Bamboo iPhone Cases by Grove

Posted using ShareThis

I Make My Case by Case-Mate

I Make My Case by Case-Mate

Posted using ShareThis

Engraved Bamboo iPhone Cases by Grove

Engraved Bamboo iPhone Cases by Grove

Posted using ShareThis

Engraved Bamboo iPhone Cases by Grove

Engraved Bamboo iPhone Cases by Grove

Posted using ShareThis

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

Blogger Buzz: Blogger integrates with Amazon Associates

Blogger Buzz: Blogger integrates with Amazon Associates

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
3

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 tag
Specifies code to use for applet
Specifies width and height of display area in pixels
Line 3 - ends tag





3.4 Two More Simple Applets: Drawing Strings and Lines
More applets
First example
Display two lines of text
Use drawString to simulate a new line with two drawString statements
Second example
Method g.drawLine(x1, y1, x2, y2 )
Draws a line from (x1, y1) to (x2, y2)
Remember that (0, 0) is upper left
Use drawLine to draw a line beneath and above a string




1 // Fig. 3.8: WelcomeApplet2.java
2 // Displaying multiple strings in an applet.
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 WelcomeApplet2 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 two Strings at different locations
19 g.drawString( "Welcome to", 25, 25 );
20 g.drawString( "Java Programming!", 25, 40 );
21
22 } // end method paint
23
24 } // end class WelcomeApplet2

1
2
3

4


1 // Fig. 3.10: WelcomeLines.java
2 // Displaying text and lines
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 WelcomeLines extends JApplet {
11
12 // draw lines and a string 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 horizontal line from (15, 10) to (210, 10)
19 g.drawLine( 15, 10, 210, 10 );
20
21 // draw horizontal line from (15, 30) to (210, 30)
22 g.drawLine( 15, 30, 210, 30 );
23
24 // draw String between lines at location (25, 25)
25 g.drawString( "Welcome to Java Programming!", 25, 25 );
26
27 } // end method paint
28
29 } // end class WelcomeLines



1
2
3

4



3.4 Two More Simple Applets: Drawing Strings and Lines
Method drawLine of class Graphics
Takes as arguments Graphics object and line’s end points
X and y coordinate of first endpoint
X and y coordinate of second endpoint






3.5 Another Java Applet: Adding Floating-Point Numbers
Next applet
Mimics application for adding two integers (Fig 2.9)
This time, use floating point numbers (numbers with a decimal point)
Using primitive data types
Double – double precision floating-point numbers
Float – single precision floating-point numbers
Show program, then discuss





1 // Fig. 3.12: AdditionApplet.java
2 // Adding two floating-point numbers.
3
4 // Java core packages
5 import java.awt.Graphics; // import class Graphics
6
7 // Java extension packages
8 import javax.swing.*; // import package javax.swing
9
10 public class AdditionApplet extends JApplet {
11 double sum; // sum of values entered by user
12
13 // initialize applet by obtaining values from user
14 public void init()
15 {
16 String firstNumber; // first string entered by user
17 String secondNumber; // second string entered by user
18 double number1; // first number to add
19 double number2; // second number to add
20
21 // obtain first number from user
22 firstNumber = JOptionPane.showInputDialog(
23 "Enter first floating-point value" );
24
25 // obtain second number from user
26 secondNumber = JOptionPane.showInputDialog(
27 "Enter second floating-point value" );
28
29 // convert numbers from type String to type double
30 number1 = Double.parseDouble( firstNumber );
31 number2 = Double.parseDouble( secondNumber );
32
33 // add numbers
34 sum = number1 + number2;
35 }
36
37 // draw results in a rectangle on applet’s background
38 public void paint( Graphics g )
39 {
40 // call inherited version of method paint
41 super.paint( g );
42
43 // draw rectangle starting from (15, 10) that is 270
44 // pixels wide and 20 pixels tall
45 g.drawRect( 15, 10, 270, 20 );
46
47 // draw results as a String at (25, 25)
48 g.drawString( "The sum is " + sum, 25, 25 );
49
50 } // end method paint
51
52 } // end class AdditionApplet



1
2
3

4



3.5 Another Java Applet: Adding Floating-Point Numbers
Lines 1-2: Comments

Line 5: imports class Graphics
import not needed if use full package and class name
public void paint ( java.awt.Graphics g )

Line 8: specify entire javax.swing package
* indicates all classes in javax.swing are available
Includes JApplet and JOptionPane
Use JOptionPane instead of javax.swing.JOptionPane
* does not not load all classes
Compiler only loads classes it uses




3.5 Another Java Applet: Adding Floating-Point Numbers
Begin class definition
Inherit from JApplet, imported from package javax.swing

Instance variable declaration
Each object of class gets own copy of the instance variable
Declared in body of class, but not inside methods
Variables declared in methods are local variables
Can only be used in body of method
Instance variables can be used anywhere in class
Have default value (0.0 in this case)




3.5 Another Java Applet: Adding Floating-Point Numbers
Primitive data type double
Used to store floating point (decimal) numbers


Method init
Normally initializes instance variables and applet class
Guaranteed to be first method called in applet
First line must always appear as above
Returns nothing (void), takes no arguments


Begins body of method init





3.5 Another Java Applet: Adding Floating-Point Numbers
16 String firstNumber; // first string entered by user
17 String secondNumber; // second string entered by user
18 double number1; // first number to add
19 double number2; // second number to add



Declare variables
Two types of variables
Reference variables (called references)
Refer to objects (contain location in memory)
Objects defined in a class definition
Can contain multiple data and methods
paint receives a reference called g to a Graphics object
Reference used to call methods on the Graphics object
Primitive data types (called variables)
Contain one piece of data




3.5 Another Java Applet: Adding Floating-Point Numbers
16 String firstNumber; // first string entered by user
17 String secondNumber; // second string entered by user
18 double number1; // first number to add
19 double number2; // second number to add

Distinguishing references and variables
If data type is a class name, then reference
String is a class
firstNumber, secondNumber
If data type a primitive type, then variable
double is a primitive data type
number1, number2



3.5 Another Java Applet: Adding Floating-Point Numbers
Method JOptionPane.showInputDialog
Prompts user for input with string
Enter value in text field, click OK
If not of correct type, error occurs
In Chapter 14 learn how to deal with this
Returns string user inputs
Assignment statement to string
Lines 26-27: As above, assigns input to secondNumber





3.5 Another Java Applet: Adding Floating-Point Numbers
30 number1 = Double.parseDouble( firstNumber );
31 number2 = Double.parseDouble( secondNumber );
static method Double.parseDouble
Converts String argument to a double
Returns the double value
Remember static method syntax
ClassName.methodName( arguments )


34 sum = number1 + number2;


Assignment statement
sum an instance variable, can use anywhere in class
Not defined in init but still used




3.5 Another Java Applet: Adding Floating-Point Numbers
Ends method init
appletviewer (or browser) calls inherited method start
start usually used with multithreading
Advanced concept, in Chapter 15
We do not define it, so empty definition in JApplet used
Next, method paint called

Method drawRect( x1, y1, width, height )
Draw rectangle, upper left corner (x1, y1), specified width and height
Line 45 draws rectangle starting at (15, 10) with a width of 270 pixels and a height of 20 pixels





3.5 Another Java Applet: Adding Floating-Point Numbers
48 g.drawString( "The sum is " + sum, 25, 25 );

Sends drawString message (calls method) to Graphics object using reference g
"The sum is" + sum - string concatenation
sum converted to a string
sum can be used, even though not defined in paint
Instance variable, can be used anywhere in class
Non-local variable






3.6 Viewing Applets in a Web Browser
Applets can execute on Java-enabled browsers
Many different browser version supporting different Java version specifications
Some support for Java 1.0, many for Java 1.1 inconsistently
Netscape Navigator 6 supports Java 2 (section 3.6.1)
Use Java Plug-in to execute Java 2 applets on other browsers (section 3.6.2)






3.6.1 Viewing Applets in Netscape Navigator 6
Netscape Navigator 6 supports Java 2
Default installation component
able to load applet HTML into browser and execute applet
Download browser at www.netscape.com
After installing, open applet HTML file using Open File… menu item in File menu






3.6.2 Viewing Applets in Other Browsers Using the Java Plug-In
Java Plug-in support from Sun
Uses Java 2 Runtime Environment (J2RE)
Can be downloaded and installed dynamically
Applet HTML file must indicate use of Java Plug-in
Convert and tags to plug-in-loading tags
Sun provides Java Plug-in 1.3 HTML Converter for conversion
Download and info at java.sun.com/products/plugin
Executable in classes subdirectory of converter directory
Batch file HTMLConverter.bat on Windows
HTML Converter.sh shell script for Linux/UNIX






3.6.2 Viewing Applets in Other Browsers Using the Java Plug-In
Java Plug-in HTML Converter process
Select directory containing HTML files to convert
Click Browse button in Converter to open file chooser to select directory
Or type in the directory
Select conversion template to support browsers
Defaults: Netscape Navigator and Microsoft Internet Explorer
Use Template File drop-down list
Click Convert… button to convert
Might need to download J2RE if not installed
After conversion, progress and status window pops up
Able to use applet HTML in supported browser
(see pictorial figures)






3.7 Java Applet Internet and World Wide Web Resources
Many Java applet resources available
java.sun.com/applets/
Many resources and free applets
Has demo applets from J2SDK
Sun site developer.java.sun.com/developer
Tech support, discussion forums, training, articles, links, etc.
Registration required
www.jars.com
Rates applets, top 1, 5 and 25 percent
View best applets on web





3.8 (Optional Case Study) Thinking About Objects: Identifying the Classes in a Problem Statement
Identifying classes in a System
Nouns of system to implement elevator simulation



3.8 (Optional Case Study) Thinking About Objects: Identifying the Classes in a Problem Statement
Not all nouns pertain to model (not highlighted)
Company and building not part of simulation
Display, audio, and elevator music pertain to presentation
GUI, user of application, First and Second Floor buttons
How user controls model only
Capacity of elevator only a property
Energy preservation not modeled
Simulation is the system
Elevator and elevator car are same references
Disregard elevator system for now





3.8 (Optional Case Study) Thinking About Objects: Identifying the Classes in a Problem Statement
Nouns highlighted to be implemented in system
Elevator button and floor button separate functions
Capitalize class names
Each separate word in class name also capitalized
ElevatorModel, ElevatorShaft, Elevator, Person, Floor, ElevatorDoor, FloorDoor, ElevatorButton, FloorButton, Bell, and Light






3.8 (Optional Case Study) Thinking About Objects: Identifying the Classes in a Problem Statement
Using UML to model elevator system
Class diagrams models classes and relationships
Model structure/building blocks of system
Representing class Elevator using UML





Top rectangle is class name
Middle contains class’ attributes
Bottom contains class’ operations




3.8 (Optional Case Study) Thinking About Objects: Identifying the Classes in a Problem Statement
Class associations using UML
Elided diagram
Class attributes and operations ignored
Class relation among ElevatorShaft, Elevator and FloorButton


Solid line is an association, or relationship between classes
Numbers near lines express multiplicity values
Indicate how many objects of class participate association




3.8 (Optional Case Study) Thinking About Objects: Identifying the Classes in a Problem Statement
Diagram shows two objects of class FloorButton participate in association with one object of ElevatorShaft
FloorButton has two-to-one relationship with ElevatorShaft





3.8 (Optional Case Study) Thinking About Objects: Identifying the Classes in a Problem Statement
Associations can be named
In diagram, “Requests” indicates association and arrow indicates direction of association
One object of FloorButton requests one object of class Elevator
Similar context with “Resets” and “Signals Arrival”
Aggregation relationship
Implies whole/part relationship
Some object “has” some object
Object attached with diamond is “owner”
Object on other end is the “part”
In diagram, elevator shaft “has an” elevator and two floor buttons





3.8 (Optional Case Study) Thinking About Objects: Identifying the Classes in a Problem Statement
The complete class diagram for elevator model
Several of many and aggregates
ElevatorModel aggregates one ElevatorShaft and two Floor
Elevator is aggregation of ElevatorDoor, ElevatorButton and Bell
Several of many associations
Person “presses” buttons
Person also “rides” Elevator and “walks” across Floor





3.8 (Optional Case Study) Thinking About Objects: Identifying the Classes in a Problem Statement
Object diagrams
Model objects (instances of classes) at a specific time in program execution
Snapshot of system structure while running
Information about participation of objects at that time
Links
Relationships between objects represented as solid lines
Object diagram when no people in building
No objects of class Person exist in system at this point
Objects written in form objectName:ClassName
UML permits omission of object names instantiated only once
If object name unknown, just include class name









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

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