Chapter 3 - Carl Rebman Associate Professor of Information ...

slimwhimperΛογισμικό & κατασκευή λογ/κού

3 Νοε 2013 (πριν από 4 χρόνια και 6 μέρες)

101 εμφανίσεις

Java Programming, 3e

Concepts and Techniques

Chapter 3

Manipulating Data
Using Methods

Chapter 3: Manipulating Data Using Methods

2

Chapter Objectives


Identify, declare, and use primitive data
types


Use the System class to create data
streams


Instantiate the BufferedReader class in
code


Use the readLine() method to handle user
input

Chapter 3: Manipulating Data Using Methods

3

Chapter Objectives


Convert strings to numbers using the
parse() method


Use assignment statements to store data
with proper identifiers


Use operators and parentheses correctly
in numeric and conditional expressions


Round an answer using the round()
method of the Math class

Chapter 3: Manipulating Data Using Methods

4

Chapter Objectives


Use Swing components to build the GUI
for a Swing program


Use the exit() method to close a Swing
program


Implement an ActionListener to handle
events


Add interface components to an applet

Chapter 3: Manipulating Data Using Methods

5

Chapter Objectives


Use the init() and paint() methods to load
the applet interface


Use the actionPerformed() method


Run and test an interactive applet


Manage Java source code files and Java
class files

Chapter 3: Manipulating Data Using Methods

6

Introduction


Data are collections of raw facts or figures


A program performs operations on input
data to output information


Input data can come from a variety of
sources


The program itself


Users of the program


External files

Chapter 3: Manipulating Data Using Methods

7

The Body Mass Index Calculator


An interactive program


Accepts the weight and height from the user


Calculates the BMI to gauge total body fat


Displays the result


Three versions


Input/Output using the command prompt


Input/Output using dialog boxes


Web environments use an applet interface

Chapter 3: Manipulating Data Using Methods

8

(b) console application using dialog

boxes


(a) console application in a command prompt window

(c) applet

Chapter 3: Manipulating Data Using Methods

9



Chapter 3: Manipulating Data Using Methods

10

Problem Analysis


Convert user input to metric measurements


Calculate the BMI


Display the result



Chapter 3: Manipulating Data Using Methods

11

Design the Solution


Design the three kinds of user interfaces
with storyboards


Design the logic of the program


Use pseudocode for sequential flow for all
programs


Use an event diagram for the applet


Validate the design


Compare the program design with the original
requirements

Chapter 3: Manipulating Data Using Methods

12



Chapter 3: Manipulating Data Using Methods

13

Coding the Program


Import the java.io package


Provides classes to support system input and
output


Add a
throws IOException

clause to the
method header


Warns the compiler that the possibility of input
or output errors exists


Gives the program the opportunity to handle
input or output errors during run
-
time without
aborting

Chapter 3: Manipulating Data Using Methods

14

Coding the Program



Chapter 3: Manipulating Data Using Methods

15

Storing Data


Java is a strongly typed language


Variables must be declared with a data type


Variable locations can hold only that data type


Java has two categories of data types


Primitive data types hold single data items


Integers, characters, floating point, and booleans
are primitive types


Reference data types hold a value that refers
to the location of the data


All Objects and arrays are reference types

Chapter 3: Manipulating Data Using Methods

16



Chapter 3: Manipulating Data Using Methods

17

Declaring Variables

Chapter 3: Manipulating Data Using Methods

18

User Input


Streams and the
System Class


The act of data flowing in and out of a program
is called a
stream


The System class creates three streams when a
program executes



Chapter 3: Manipulating Data Using Methods

19

User Input


Streams and the
System Class


Data from input streams are first sent to a
buffer


The java.io package contains several stream
classes


InputStreamReader



Decodes the bytes from the System.in buffer into characters


BufferedReader


Increases efficiency by temporarily storing the input received
from another class, such as InputStreamReader


Aids in platform independence by simplifying the process of
reading text and numbers from various input sources

Chapter 3: Manipulating Data Using Methods

20

Using the BufferedReader class


Call the BufferedReader constructor to
instantiate a BufferedReader object


The argument of the BufferedReader() method
instantiates an InputStreamReader


BufferedReader() returns a reference to the
input data from System.in



Chapter 3: Manipulating Data Using Methods

21

Chapter 3: Manipulating Data Using Methods

22

User Prompts, Inputs,

and Conversions


The readLine() method reads a line of input text
and returns a String containing the line


The returned String must be explicitly converted
if the data is to be used as another data type


Each primitive data type has a wrapper class
allowing the primitive to be treated as an object


The wrapper classes provides a parse() method
to convert Strings to primitives, and vice versa


Example: height = dataIn.readLine();




inches = Integer.parseInt(height);

Chapter 3: Manipulating Data Using Methods

23

Assignment Statements


General syntax: location = value


Chapter 3: Manipulating Data Using Methods

24

Arithmetic Operators

Chapter 3: Manipulating Data Using Methods

25

Arithmetic Operators


The order of operator precedence is a
predetermined order that defines the sequence
in which operators are evaluated in an
expression


Addition, subtraction, multiplication, and division
can manipulate any numeric data type


When Java performs math on mixed data types,
the result is always the larger data type


Casts allow programmers to force a conversion
from one primitive type to another

Chapter 3: Manipulating Data Using Methods

26

Comparison Operators


A comparison operation results in a true or false value
that can be stored in a boolean variable

Chapter 3: Manipulating Data Using Methods

27

Numeric Expressions


Numeric expressions evaluate to a number


Only numeric primitive data types may be used in a
numeric expression


A value and variable must be separated by an arithmetic
operator


Unless parentheses supercede, an expression is
evaluated left to right with the following rules of
precedence:


Multiplication and/or division


Integer division


Modular division


Addition and/or subtraction

Chapter 3: Manipulating Data Using Methods

28

Conditional Expressions


Conditional expression evaluate to either true or
false


Comparison operators, values, variables, methods,
and Strings may be used in a conditional expression


Two operands must be separated by a comparison
operator


Unless parentheses supercede, an expression is
evaluated left to right with relational operators (<,
<=, >, >=) taking precedence over equality
operators (==, !=)

Chapter 3: Manipulating Data Using Methods

29

Parentheses in Expressions


Parentheses may be used to change the order
of operations


The part of the expression within the parentheses is
evaluated first


Parentheses can provide clarity in complex
expressions


Numeric and conditional expressions should be
grouped with parentheses


Parentheses can be nested


Java evaluates the innermost expression first and
then moves on to the outermost expression

Chapter 3: Manipulating Data Using Methods

30

Construction of Error
-
Free
Expressions


Java may not be able to evaluate a validly
formed expression due to the following logic
errors:


Dividing by zero


Taking the square root of a negative value


Raising a negative value to a non
-
integer value


Using a value too great or too small for a given data
type


Comparing different data types in a conditional
expression

Chapter 3: Manipulating Data Using Methods

31

The Math Class



Chapter 3: Manipulating Data Using Methods

32

Using Variables in Output

Chapter 3: Manipulating Data Using Methods

33

Compiling, Running, and
Documenting the Application


Compile the Body Mass Index Calculator
program


Execute the program


Test the program by entering the sample
input data supplied in the requirements
phase at the prompts


Verify the results


Print the source code and screen images
for documentation

Chapter 3: Manipulating Data Using Methods

34

Using Swing Components


Save the previous version of the Body
Mass Index Calculator with a new filename


Import the javax.swing.JOptionPane class


Contains methods to create dialog boxes for
input, confirmation, and messages


Delete the IOException and
BufferedReader code


The swing dialog boxes buffer data from the
user and handle IO errors

Chapter 3: Manipulating Data Using Methods

35

Swing Dialog Boxes


Dialog boxes are created with the JOptionPane “show”
methods


The showInputDialog() and showConfirmDialog return a
String containing the user input


Chapter 3: Manipulating Data Using Methods

36

Swing Dialog Boxes



Chapter 3: Manipulating Data Using Methods

37

Closing Programs that use
Swing


System.exit() terminates an application
that displays a GUI


The command prompt window closes when
this method is called


System.exit accepts an integer argument
that serves as a status code


0 indicates successful termination


1 indicates abnormal termination

Chapter 3: Manipulating Data Using Methods

38

Saving, Compiling, and Running
the Swing Version


Verify that the file name matches the class
name at the beginning of the code


Compile the source code


Test with the same sample data for all
versions to compare output results


If incorrect or unrealistic data is entered by
the user, errors will occur


Errors and exception handling will be
discussed in a later chapter

Chapter 3: Manipulating Data Using Methods

39

Moving to the Web


The applet version of the Body Mass Index
Calculator has four kinds of objects



Image, Labels, TextFields, and Buttons


Import three packages


Java.applet


Java.awt


Java.awt.event


Implement an ActionListener interface in the
class header


Informs the program to respond to user
-
driven events

Chapter 3: Manipulating Data Using Methods

40

Moving to the Web


Every event class has one or more associated
listener interfaces



Chapter 3: Manipulating Data Using Methods

41

Moving to the Web



Chapter 3: Manipulating Data Using Methods

42

Adding Interface Components

to an Applet


Label


Displays text in the applet window


TextField


Displays a text box for users to enter text


Buttons


Displays a command button for users to click

Chapter 3: Manipulating Data Using Methods

43

The init() Method


Initializes the window color and graphic


Adds components to the applet window


Registers the Button’s ActionListener



Chapter 3: Manipulating Data Using Methods

44

The actionPerformed() Method


When a click event occurs, the ActionListener’s
actionPerformed() method is triggered


Input values are retrieved with getText()


Calculations are performed


Output is sent to a label with setText()



Chapter 3: Manipulating Data Using Methods

45

The paint() Method


Draws the initialized image in the applet window



Chapter 3: Manipulating Data Using Methods

46

Creating an HTML Host Document
for an Interactive Applet


Compile the applet


Write an HTML Host Document to execute
the applet


Use the <APPLET> tag to specify the
bytecode file, and width and height of the
window


Use the same sample data to test the
applet


Document the source code

Chapter 3: Manipulating Data Using Methods

47

File Management


Coding and compiling an application creates
several files on your storage device


File naming conventions and the operating
system’s capability of displaying icons can help
the programmer maintain a logical order


Three java files named after the program purpose and
user interface type


Three class files after compilation


HTML host document


Image file

Chapter 3: Manipulating Data Using Methods

48

Chapter Summary


Identify, declare, and use primitive data
types


Use the System class to create data
streams


Instantiate the BufferedReader class in
code


Use the readLine() method to handle user
input

Chapter 3: Manipulating Data Using Methods

49

Chapter Summary


Convert strings to numbers using the
parse() method


Use assignment statements to store data
with proper identifiers


Use operators and parentheses correctly
in numeric and conditional expressions


Round an answer using the round()
method of the Math class

Chapter 3: Manipulating Data Using Methods

50

Chapter Summary


Use Swing components to build the GUI
for a Swing program


Use the exit() method to close a Swing
program


Implement an ActionListener to handle
events


Add interface components to an applet

Chapter 3: Manipulating Data Using Methods

51

Chapter Summary


Use the init() and paint() methods to load
the applet interface


Use the actionPerformed() method


Run and test an interactive applet


Manage Java source code files and Java
class files

Java Programming, 3e

Concepts and Techniques

Chapter 3 Complete