Java Programming 2 E Introductory Concepts and Techniques


















































- Slides: 50

Java Programming, 2 E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods

Objectives • Identify, declare, and use primitive data types • Use the System class to create data streams • Instantiate the Buffered. Reader class in code • Use the read. Line() method to handle user input Chapter 3: Manipulating Data Using Methods 2

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 3

Objectives • Use Swing components to build the GUI for a Swing program • Use the exit() method to close a Swing program • Implement an Action. Listener to handle events • Add interface components to an applet Chapter 3: Manipulating Data Using Methods 4

Objectives • Use the init() and paint() methods to load the applet interface • Use the action. Performed() method • Run and test an interactive applet • Manage Java source code files and Java class files Chapter 3: Manipulating Data Using Methods 5

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 6

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 Chapter 3: Manipulating Data Using Methods 7

(a) console application in a command prompt window (b) console application using dialog boxes (c) applet Chapter 3: Manipulating Data Using Methods 8

Chapter 3: Manipulating Data Using Methods 9

Problem Analysis • Convert user input to metric measurements • Calculate the BMI • Display the result Chapter 3: Manipulating Data Using Methods 10

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 11

Chapter 3: Manipulating Data Using Methods 12

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 13

Coding the Program Chapter 3: Manipulating Data Using Methods 14

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 Chapter 3: Manipulating Data Using Methods 15

Chapter 3: Manipulating Data Using Methods 16

Declaring Variables Chapter 3: Manipulating Data Using Methods 17

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 Chapter 3: Manipulating Data Using Methods 18

User Input - Streams cont. • Data from input streams are first sent to a buffer • The java. io package contains several stream classes – Input. Stream. Reader • Decodes the bytes from the System. in buffer into characters – Buffered. Reader • Increases efficiency by temporarily storing the input received from another class, such as Input. Stream. Reader • Aids in platform independence by simplifying the process of reading text and numbers from various input sources Chapter 3: Manipulating Data Using Methods 19

Using the Buffered. Reader class • Call the Buffered. Reader constructor to instantiate a Buffered. Reader object • The argument of the Buffered. Reader() method instantiates an Input. Stream. Reader • Buffered. Reader() returns a reference to the input data from System. in Chapter 3: Manipulating Data Using Methods 20

Chapter 3: Manipulating Data Using Methods 21

Conversions • The read. Line() 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 = data. In. read. Line(); inches = Integer. parse. Int(height); Chapter 3: Manipulating Data Using Methods 22

Assignment Statements • General syntax: location = value Chapter 3: Manipulating Data Using Methods 23

Arithmetic Operators Chapter 3: Manipulating Data Using Methods 24

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 25

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 26

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 27

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 28

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 29

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 30

The Math Class Chapter 3: Manipulating Data Using Methods 31

Using Variables in Output Chapter 3: Manipulating Data Using Methods 32

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 Chapter 3: Manipulating Data Using Methods 33

Using Swing Components • Save the previous version of the Body Mass Index Calculator with a new filename • Import the javax. swing. JOption. Pane class – Contains methods to create dialog boxes for input, confirmation, and messages • Delete the IOException and Buffered. Reader code – The swing dialog boxes buffer data from the user and handle IO errors Chapter 3: Manipulating Data Using Methods 34

Swing Dialog Boxes • Dialog boxes are created with the JOption. Pane “show” methods • The show. Input. Dialog() and show. Confirm. Dialog return a String containing the user input Chapter 3: Manipulating Data Using Methods 35

Chapter 3: Manipulating Data Using Methods 36

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 37

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 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 38

Moving to the Web • The applet version of the Body Mass Index Calculator has four kinds of objects – Image, Labels, Text. Fields, and Buttons • Import three packages – Java. applet – Java. awt. event • Implement an Action. Listener interface in the class header – Informs the program to respond to user-driven events Chapter 3: Manipulating Data Using Methods 39

Moving to the Web • Every event class has one or more associated listener interfaces Chapter 3: Manipulating Data Using Methods 40

Chapter 3: Manipulating Data Using Methods 41

Adding Interface Components • Label – Displays text in the applet window • Text. Field – Displays a text box for users to enter text • Buttons – Displays a command button for users to click Chapter 3: Manipulating Data Using Methods 42

The init() Method • Initializes the window color and graphic • Adds components to the applet window • Registers the Button’s Action. Listener Chapter 3: Manipulating Data Using Methods 43

The action. Performed() Method • When a click event occurs, the Action. Listener’s action. Performed() method is triggered – Input values are retrieved with get. Text() – Calculations are performed – Output is sent to a label with set. Text() Chapter 3: Manipulating Data Using Methods 44

The paint() Method • Draws the initialized image in the applet window Chapter 3: Manipulating Data Using Methods 45

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 sample data to test the applet • Document the source code Chapter 3: Manipulating Data Using Methods 46

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 47

Summary • Variable declarations – Data types • Assignment statements • Input streams – Input. Stream. Reader – Buffered. Reader • readline() • Arithmetic operators – Operator precedence – Math class methods Chapter 3: Manipulating Data Using Methods 48

Summary • Output using System. out – Concatenation of mixed data types • Java Swing components – JOption. Pane • AWT Components and method constructors – Labels, Text. Fields, and Buttons • Events – Action. Event, Action. Listener, action. Performed() Chapter 3: Manipulating Data Using Methods 49

Java Programming, 2 E Introductory Concepts and Techniques Chapter 3 Complete