Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Java Programming, 2E 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 BufferedReader class in code • Use the readLine() 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 ActionListener 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 actionPerformed() 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 – 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 19 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 20 Chapter 3: Manipulating Data Using Methods 21 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 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.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 34 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 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 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 38 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 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 • 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 42 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 43 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 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 same 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 – InputStreamReader – BufferedReader • 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 – JOptionPane • AWT Components and method constructors – Labels, TextFields, and Buttons • Events – ActionEvent, ActionListener, actionPerformed() Chapter 3: Manipulating Data Using Methods 49 Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Complete