java programming, 2e introductory concepts and techniques chapter 3 manipulating data using methods
TRANSCRIPT
![Page 1: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/1.jpg)
Java Programming, 2EIntroductory Concepts
and Techniques
Chapter 3Manipulating Data Using Methods
![Page 2: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/2.jpg)
2Chapter 3: Manipulating Data Using Methods
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
![Page 3: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/3.jpg)
3Chapter 3: Manipulating Data Using Methods
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
![Page 4: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/4.jpg)
4Chapter 3: Manipulating Data Using Methods
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
![Page 5: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/5.jpg)
5Chapter 3: Manipulating Data Using Methods
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
![Page 6: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/6.jpg)
6Chapter 3: Manipulating Data Using Methods
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
![Page 7: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/7.jpg)
7Chapter 3: Manipulating Data Using Methods
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– Mobile devices use the command prompt– Notebooks use dialog boxes– Web environments use an applet interface
![Page 8: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/8.jpg)
8Chapter 3: Manipulating Data Using Methods
(b) console application using dialog boxes
(a) console application in a command prompt window
(c) applet
![Page 9: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/9.jpg)
9Chapter 3: Manipulating Data Using Methods
![Page 10: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/10.jpg)
10Chapter 3: Manipulating Data Using Methods
Problem Analysis
• Convert user input to metric measurements • Calculate the BMI • Display the result
![Page 11: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/11.jpg)
11Chapter 3: Manipulating Data Using Methods
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
![Page 12: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/12.jpg)
12Chapter 3: Manipulating Data Using Methods
![Page 13: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/13.jpg)
13Chapter 3: Manipulating Data Using Methods
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
![Page 14: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/14.jpg)
14Chapter 3: Manipulating Data Using Methods
Coding the Program
![Page 15: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/15.jpg)
15Chapter 3: Manipulating Data Using Methods
Storing Data
• Java is strongly typed– 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
![Page 16: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/16.jpg)
16Chapter 3: Manipulating Data Using Methods
![Page 17: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/17.jpg)
17Chapter 3: Manipulating Data Using Methods
Declaring Variables
![Page 18: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/18.jpg)
18Chapter 3: Manipulating Data Using Methods
User Input - Streams
• 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
![Page 19: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/19.jpg)
19Chapter 3: Manipulating Data Using Methods
User Input - Streams cont.
• 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
![Page 20: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/20.jpg)
20Chapter 3: Manipulating Data Using Methods
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
![Page 21: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/21.jpg)
21Chapter 3: Manipulating Data Using Methods
![Page 22: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/22.jpg)
22Chapter 3: Manipulating Data Using Methods
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);
![Page 23: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/23.jpg)
23Chapter 3: Manipulating Data Using Methods
Assignment Statements
• General syntax: location = value
![Page 24: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/24.jpg)
24Chapter 3: Manipulating Data Using Methods
Arithmetic Operators
![Page 25: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/25.jpg)
25Chapter 3: Manipulating Data Using Methods
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
![Page 26: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/26.jpg)
26Chapter 3: Manipulating Data Using Methods
Comparison Operators
• A comparison operation results in a true or false value that can be stored in a boolean variable
![Page 27: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/27.jpg)
27Chapter 3: Manipulating Data Using Methods
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
![Page 28: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/28.jpg)
28Chapter 3: Manipulating Data Using Methods
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 (==, !=)
![Page 29: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/29.jpg)
29Chapter 3: Manipulating Data Using Methods
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
![Page 30: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/30.jpg)
30Chapter 3: Manipulating Data Using Methods
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
![Page 31: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/31.jpg)
31Chapter 3: Manipulating Data Using Methods
The Math Class
![Page 32: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/32.jpg)
32Chapter 3: Manipulating Data Using Methods
Using Variables in Output
![Page 33: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/33.jpg)
33Chapter 3: Manipulating Data Using Methods
Testing 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
![Page 34: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/34.jpg)
34Chapter 3: Manipulating Data Using Methods
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
![Page 35: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/35.jpg)
35Chapter 3: Manipulating Data Using Methods
Swing Dialog Boxes
• Dialog boxes are created with the JOptionPane “show” methods
• The showInputDialog() and showConfirmDialog return a String containing the user input
![Page 36: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/36.jpg)
36Chapter 3: Manipulating Data Using Methods
![Page 37: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/37.jpg)
37Chapter 3: Manipulating Data Using Methods
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
![Page 38: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/38.jpg)
38Chapter 3: Manipulating Data Using Methods
Testing the Swing Program
• 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
![Page 39: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/39.jpg)
39Chapter 3: Manipulating Data Using Methods
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
![Page 40: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/40.jpg)
40Chapter 3: Manipulating Data Using Methods
Moving to the Web
• Every event class has one or more associated listener interfaces
![Page 41: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/41.jpg)
41Chapter 3: Manipulating Data Using Methods
![Page 42: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/42.jpg)
42Chapter 3: Manipulating Data Using Methods
Adding Interface Components
• 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
![Page 43: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/43.jpg)
43Chapter 3: Manipulating Data Using Methods
The init() Method
• Initializes the window color and graphic• Adds components to the applet window• Registers the Button’s ActionListener
![Page 44: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/44.jpg)
44Chapter 3: Manipulating Data Using Methods
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()
![Page 45: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/45.jpg)
45Chapter 3: Manipulating Data Using Methods
The paint() Method
• Draws the initialized image in the applet window
![Page 46: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/46.jpg)
46Chapter 3: Manipulating Data Using Methods
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
![Page 47: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/47.jpg)
47Chapter 3: Manipulating Data Using Methods
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
![Page 48: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/48.jpg)
48Chapter 3: Manipulating Data Using Methods
Summary
• Variable declarations– Data types
• Assignment statements• Input streams
– InputStreamReader– BufferedReader
• readline()
• Arithmetic operators– Operator precedence– Math class methods
![Page 49: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/49.jpg)
49Chapter 3: Manipulating Data Using Methods
Summary
• Output using System.out– Concatenation of mixed data types
• Java Swing components– JOptionPane
• AWT Components and method constructors– Labels, TextFields, and Buttons
• Events– ActionEvent, ActionListener, actionPerformed()
![Page 50: Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods](https://reader030.vdocuments.mx/reader030/viewer/2022032707/56649e1b5503460f94b096e5/html5/thumbnails/50.jpg)
Java Programming, 2EIntroductory Concepts
and Techniques
Chapter 3 Complete