540 likes | 560 Views
Chapter 2 - Introduction to Java Applications. Outline 2.1 Introduction 2.2 A Simple Program: Printing a Line of Text 2.3 Another Java Application: Adding Integers 2.4 Memory Concepts 2.5 Arithmetic 2.6 Decision Making: Equality and Relational Operators. 2.1 Introduction. In this chapter
E N D
Chapter 2 - Introduction to Java Applications Outline2.1 Introduction2.2 A Simple Program: Printing a Line of Text2.3 Another Java Application: Adding Integers2.4 Memory Concepts2.5 Arithmetic2.6 Decision Making: Equality and Relational Operators
2.1 Introduction • In this chapter • Introduce examples to illustrate features of Java • Two program styles - applications and applets
2.2 A Simple Program: Printing a Line of Text • Application • Program that executes using the java interpreter • Sample program • We will show you an program then analyze each line in detail
1 // Fig. 2.1: Welcome1.java 2 // A first program in Java 3 4 public class Welcome1 { 5 public static void main( String args[] ) 6 { 7 System.out.println( "Welcome to Java Programming!" ); 8 } 9 } Java program Program Output Welcome to Java Programming!
1 // Fig. 2.1: Welcome1.java 2 // A first program in Java 2.2 A Simple Program: Printing a Line of Text • // indicates the remainder of the line is a comment • Comments are ignored by the compiler • Use comments to document and describe code • Can also use multiple line comments: /* ... */ /* This is a multiple line comment. It can be split over many lines */ • Another line of comments that describes the program • Note: line numbers are not part of the program; they are added for our reference
3 4 public class Welcome1 { 2.2 A Simple Program: Printing a Line of Text • A blank line • Blank lines and spaces make a program more readable • Blank lines, spaces, and tabs are known as whitespace characters, and are ignored by the compiler • Begins a class definition for class Welcome1 • Every Java program has at least one user-defined class • class keyword immediately followed by class name • Keyword words reserved for use by Java • Naming classes: capitalize every word • SampleClassName
4 public class Welcome1 { 2.2 A Simple Program: Printing a Line of Text • Name of class called identifier • Series of characters consisting of letters, digits, underscores ( _ ) and dollar signs ( $ ) • Does not begin with a digit • Contains no spaces • Examples: Welcome1, $value, _value, button7 • 7button is invalid • Case sensitive (capitalization matters) • a1 and A1 are different • For chapters 2 to 7, use public keyword • Certain details are not important now, full discussions will come later
4 public class Welcome1 { 5 public static void main( String args[] ) 2.2 A Simple Program: Printing a Line of Text • Saving files • File name is class name and .java extension • Welcome1.java • Left brace • Begins body of every class • Right brace ends definition (line 9) • Part of every Java application • Applications begin executing at main • Parenthesis indicate main is a method • Java applications contain one or more methods
5 public static void main( String args[] ) 6 { 2.2 A Simple Program: Printing a Line of Text • Exactly one method must be called main • Methods can perform tasks and return information • void means main returns no information • For now, mimic main's first line • Left brace begins body of method definition • Ended by right brace
7 System.out.println( "Welcome to Java Programming!" ); 2.2 A Simple Program: Printing a Line of Text • Instructs computer to perform an action • Prints string of characters between double quotes • String - series characters inside double quotes • White spaces in strings are not ignored by compiler • System.out - standard output object • Allows java to print to command window (i.e., MS-DOS prompt) • Method System.out.println displays a line of text • Argument inside parenthesis • Entire line known as a statement • All statements must end with a semicolon ;
8 } 9 } 8 } // end of method main() 9 } // end of class Welcome1 2.2 A Simple Program: Printing a Line of Text • Ends method definition • Ends class definition • Some programmers add comments to keep track of ending braces • Lines 8 and 9 could be rewritten as: • Remember that the compiler ignores comments
2.2 A Simple Program: Printing a Line of Text • Compiling a program • Open a command window, go to directory where program is stored • Type javac Welcome1.java • If there are no errors, file Welcome1.class is created • Contains Java bytecodes that represent application • Bytecodes passed to Java interpreter • Executing a program • Type java Welcome1 • Launches interpreter to load .class file for class Welcome1 • .class extension omitted from command • Interpreter calls method main
1 // Fig. 2.1: Welcome1.java 2 // A first program in Java 3 4 public class Welcome1 { 5 public static void main( String args[] ) 6 { 7 System.out.println( "Welcome to Java Programming!" ); 8 } 9 } Java program Program Output
2.2 A Simple Program: Printing a Line of Text • Other methods • System.out.println • Positions cursor on new line after displaying argument • System.out.print • Keeps cursor on same line after displaying argument
1 // Fig. 2.3: Welcome2.java 2 // Printing a line with multiple statements 3 4 public class Welcome2 { 5 public static void main( String args[] ) 6 { 7 System.out.print( "Welcome to " ); System.out.print keeps the cursor on the same line, so System.out.println continues on the same line. 8 System.out.println( "Java Programming!" ); 9 } 10 } Line numbers 1-2: Comments 3: Blank 4: Begin class Welcome2 5: Method main 6: Begin main body 7: Method System.out.print 8: Method System.out.println 9: end main 10: end Welcome2 Program Output Welcome to Java Programming!
2.2 A Simple Program: Printing a Line of Text • Escape characters • Backslash ( \ ) • Indicates that special characters are to be output • Backslash combined with a character makes an escape sequence • \n - newline • \t - tab • Others in Fig. 2.5 • Usage • Can use in System.out.println or System.out.print to create new lines • System.out.println( "Welcome\nto\nJava\nProgramming!" );
1 // Fig. 2.4: Welcome3.java 2 // Printing multiple lines with a single statement 3 4 public class Welcome3 { 5 public static void main( String args[] ) 6 { 7 System.out.println( "Welcome\nto\nJava\nProgramming!" ); 8 } 9 } Notice how a new line is output for each \n escape sequence. Class Welcome1 1. main 2. System.out.println (uses \n for newline) Program Output Welcome to Java Programming!
2.2 A Simple Program: Printing a Line of Text • Display • Although our first programs executed in the command window, most Java applications use windows or a dialog box • Netscape Communicator and Microsoft Internet Explorer execute in their own windows • Java has class JOptionPane that allows us to use dialog boxes • Packages • Java has a set of predefined classes for us to use • Groups of related classes called packages • Group of all packages known as Java class library or Java applications programming interface (Java API) • JOptionPane is in the javax.swing package
2.2 A Simple Program: Printing a Line of Text • Upcoming program • Application that uses dialog boxes • Explanation will come afterwards
1 // Fig. 2.6: Welcome4.java 2 // Printing multiple lines in a dialog box 3 import javax.swing.JOptionPane; // import class JOptionPane 4 5 public class Welcome4 { 6 public static void main( String args[] ) 7 { 8 JOptionPane.showMessageDialog( 9 null, "Welcome\nto\nJava\nProgramming!" ); 10 11 System.exit( 0 ); // terminate the program 12 } 13 } Java program using dialog box Program Output
3 import javax.swing.JOptionPane; // import class JOptionPane 4 5 public class Welcome4 { 6 public static void main( String args[] ) 7 { 2.2 A Simple Program: Printing a Line of Text • Lines 1-2: comments as before • import statements - locate the classes we intend to use • Tells compiler to load class JOptionPane from javax.swing package • This package contains many Graphical User Interface components • Lines 4-7: Blank line, begin class Welcome4 and main
8 JOptionPane.showMessageDialog( 9 null, "Welcome\nto\nJava\nProgramming!" ); 2.2 A Simple Program: Printing a Line of Text • Call method showMessageDialog of class JOptionPane • Requires two arguments • Multiple arguments separated by commas (,) • For now, first argument always null • Second argument is string to display • showMessageDialog is a static method of class JOptionPane • static methods called by using class name, dot (.) then method name • All statements end with ; • A single statement can therefore span multiple lines
8 JOptionPane.showMessageDialog( 9 null, "Welcome\nto\nJava\nProgramming!" ); 2.2 A Simple Program: Printing a Line of Text • Executing lines 8 and 9 displays the dialog box shown below • Automatically includes an OK button • Hides or dismisses dialog box • Title bar has string Message
11 System.exit( 0 ); // terminate the program 2.2 A Simple Program: Printing a Line of Text • Calls static method exit of class System • Terminates application • Use with any application displaying a GUI • Because method is static, just needs class name and dot (.) • Identifiers starting with capital letters are usually class names • Argument of 0 means application ended successfully • Non-zero usually means an error occurred • Class System part of package java.lang • No import statement needed • java.lang automatically imported in every Java program • Lines 12-13: End Welcome4 and main
1 // Fig. 2.6: Welcome4.java 2 // Printing multiple lines in a dialog box 3 import javax.swing.JOptionPane; // import class JOptionPane 4 5 public class Welcome4 { 6 public static void main( String args[] ) 7 { 8 JOptionPane.showMessageDialog( 9 null, "Welcome\nto\nJava\nProgramming!" ); 10 11 System.exit( 0 ); // terminate the program 12 } 13 } 1. import statement 2. Class Welcome4 2.1 main 2.2 showMessageDialog 2.3 System.exit Program Output
2.3 Another Java Application: Adding Integers • Upcoming program • Use input dialogs to input two values from user • Use message dialog to display sum of the two values
1 // Fig. 2.8: Addition.java 2 // An addition program 3 4 import javax.swing.JOptionPane; // import class JOptionPane 5 6 public class Addition { 7 public static void main( String args[] ) 8 { 9 String firstNumber, // first string entered by user 10 secondNumber; // second string entered by user 11 int number1, // first number to add 12 number2, // second number to add 13 sum; // sum of number1 and number2 14 15 // read in first number from user as a string 16 firstNumber = 17 JOptionPane.showInputDialog( "Enter first integer" ); 18 19 // read in second number from user as a string 20 secondNumber = 21 JOptionPane.showInputDialog( "Enter second integer" ); 22 23 // convert numbers from type String to type int 24 number1 = Integer.parseInt( firstNumber ); 25 number2 = Integer.parseInt( secondNumber ); 26 27 // add the numbers 28 sum = number1 + number2; 29 30 // display the results Java Program using input dialogs
33 JOptionPane.PLAIN_MESSAGE ); 34 35 System.exit( 0 ); // terminate the program 36 } 37 } 31 JOptionPane.showMessageDialog( 32 null, "The sum is " + sum , "Results", Program Output
4 import javax.swing.JOptionPane; // import class JOptionPane 6 public class Addition { 9 String firstNumber, // first string entered by user 10 secondNumber; // second string entered by user 2.3 Another Java Application: Adding Integers • Lines 1-2: Comments • Specifies location of JOptionPane for use in the program • Begins public class Addition • Recall that file name must be Addition.java • Lines 7-8: main • Declaration • firstNumber and secondNumber are variables
9 String firstNumber, // first string entered by user 10 secondNumber; // second string entered by user 2.3 Another Java Application: Adding Integers • Variables: location in memory that can store a value • Must be declared with a name and data type before use • firstNumber and secondNumber are of data type String (java.lang), so they will hold strings • Variable name: any valid identifier • Declarations end with semicolons ; • Can declare multiple variables of the same type at a time • Use a comma separated list • Programmers often add comments to describe purpose of variables
11 int number1, // first number to add 12 number2, // second number to add 13 sum; // sum of number1 and number2 2.3 Another Java Application: Adding Integers • Declares variables number1, number2, and sum of type int • int can hold integer values (whole numbers): i.e., 0, -4, 97 • Data types float and double can hold decimal numbers • Data type char can hold a single character • Known as primitive data types - more in Chapter 4
15 // read in first number from user as a string 16 firstNumber = 17 JOptionPane.showInputDialog( "Enter first integer" ); 2.3 Another Java Application: Adding Integers • Reads a String from the user, representing the first number to be added • Method JOptionPane.showInputDialog displays the following: • Message called a prompt - directs user to perform an action • Argument appears as prompt text • If wrong type of data entered (i.e. non-integer) then error occurs
15 // read in first number from user as a string 16 firstNumber = 17 JOptionPane.showInputDialog( "Enter first integer" ); 2.3 Another Java Application: Adding Integers • Result of call to showInputDialog (a String with the user input) given to firstNumber with the assignment operator = • Assignment statement • = binary operator - takes two operands • Expression on right evaluated and assigned to variable on left • Read as: firstNumber gets value of JOptionPane.showInputDialog( "Enter first integer" )
19 // read in second number from user as a string 20 secondNumber = 21 JOptionPane.showInputDialog( "Enter second integer" ); 23 // convert numbers from type String to type int 24 number1 = Integer.parseInt( firstNumber ); 25 number2 = Integer.parseInt( secondNumber ); 2.3 Another Java Application: Adding Integers • Similar to previous statement • Assigns variable secondNumber to second integer input • Method Integer.parseInt • Converts its String argument into an integer (type int) • Class Integer in java.lang • Integer returned by Integer.parseInt is assigned to variable number1 (line 24) • Remember that number1 was declared as type int • Line 25 similar
27 // add the numbers 28 sum = number1 + number2; 2.3 Another Java Application: Adding Integers • Assignment statement • First calculates sum of number1 and number2 (right hand side) • Next, uses assignment operator = to assign result to variable sum • Read as:sum gets the value of number1 + number2
33 JOptionPane.PLAIN_MESSAGE ); 31 JOptionPane.showMessageDialog( 32 null, "The sum is " + sum, "Results", 2.3 Another Java Application: Adding Integers • Uses showMessageDialog to display results • "The sum is " + sum • Uses the operator + to "add" the string literal "The sum is" and sum • Allows concatenation of a String and another data type • Results in a new string • If sum contains 117, then "The sum is " + sum results in the new string "The sum is 117" • Note the space in "The sum is " • More on strings in Chapter 10
33 JOptionPane.PLAIN_MESSAGE ); 31 JOptionPane.showMessageDialog( 32 null, "The sum is " + sum, "Results", 2.3 Another Java Application: Adding Integers • Different version of showMessageDialog • Requires four arguments (instead of two as before) • First argument: null for now • Second: message to display • Third: string to display in title bar • Fourth: value indicating type of message dialog • JOptionPane.PLAIN_MESSAGE indicates no icon • JOptionPane.ERROR_MESSAGE • JOptionPane.INFORMATION_MESSAGE • JOptionPane.WARNING_MESSAGE • JOptionPane.QUESTION_MESSAGE
1 // Fig. 2.8: Addition.java 2 // An addition program 3 4 import javax.swing.JOptionPane; // import class JOptionPane 5 6 public class Addition { 7 public static void main( String args[] ) 8 { 9 String firstNumber, // first string entered by user 10 secondNumber; // second string entered by user 11 int number1, // first number to add 12 number2, // second number to add 13 sum; // sum of number1 and number2 14 15 // read in first number from user as a string 16 firstNumber = 17 JOptionPane.showInputDialog( "Enter first integer" ); 18 19 // read in second number from user as a string 20 secondNumber = 21 JOptionPane.showInputDialog( "Enter second integer" ); 22 23 // convert numbers from type String to type int 24 number1 = Integer.parseInt( firstNumber ); 25 number2 = Integer.parseInt( secondNumber ); 26 27 // add the numbers 28 sum = number1 + number2; 29 30 // display the results 1. import 2. class Addition 2.1 Declare variables (name and data type) 3. showInputDialog 4. parseInt 5. Add numbers, put result in sum
33 JOptionPane.PLAIN_MESSAGE ); 34 35 System.exit( 0 ); // terminate the program 36 } 37 } 31 JOptionPane.showMessageDialog( 32 null, "The sum is " + sum, "Results", 6. showMessageDialog 7. System.exit Program Output
number1 45 2.4 Memory Concepts • Variables • Variable names correspond to locations in the computer's memory • Every variable has a name, a type, a size and a value • Whenever a new value is placed into a variable it replaces (and destroys) previous value • Reading variables from memory does not change them • Visual representation
2.5 Arithmetic • Arithmetic calculations are used in most programs • Use * for multiplication and / for division, +, - • No operator for exponentiation (more in Chapter 5) • Integer division truncates remainder 7 / 5 evaluates to 1 • Modulus operator % returns the remainder 7 % 5 evaluates to 2 • Operator precedence • Some arithmetic operators act before others (i.e., multiplication before addition) • Use parenthesis when needed • Example: Find the average of three variables a, b and c • Do not use: a + b + c / 3 • Use: (a + b + c ) / 3
2.6 Decision Making: Equality and Relational Operators • if control structure • Simple version in this section, more detail later • If a condition is true, then the body of the if statement executed • 0 interpreted as false, non-zero is true • Control always resumes after the if structure • Conditions for if structures can be formed using equality or relational operators (next slide) if ( condition ) statement executed if condition true • No semicolon needed after condition
< _ = > _ 2.6 Decision Making: Equality and Relational Operators • Upcoming program uses if structures • Discussion afterwards
1 // Fig. 2.17: Comparison.java 2 // Using if statements, relational operators 3 // and equality operators 4 5 import javax.swing.JOptionPane; 6 7 public class Comparison { 8 public static void main( String args[] ) 9 { 10 String firstNumber, // first string entered by user 11 secondNumber, // second string entered by user 12 result; // a string containing the output 13 int number1, // first number to compare 14 number2; // second number to compare 15 16 // read first number from user as a string 17 firstNumber = 18 JOptionPane.showInputDialog( "Enter first integer:" ); 19 20 // read second number from user as a string 21 secondNumber = 22 JOptionPane.showInputDialog( "Enter second integer:" ); 23 24 // convert numbers from type String to type int 25 number1 = Integer.parseInt( firstNumber ); 26 number2 = Integer.parseInt( secondNumber ); 27 28 // initialize result to the empty string 29 result = ""; 30
49 // Display results 34 if ( number1 != number2 ) 35 result = result + number1 + " != " + number2; 50 JOptionPane.showMessageDialog( 51 null, result, "Comparison Results", 36 37 if ( number1 < number2 ) 52 JOptionPane.INFORMATION_MESSAGE ); 53 38 result = result + "\n" + number1 + " < " + number2; 39 54 System.exit( 0 ); 40 if ( number1 > number2 ) 55 } 41 result = result + "\n" + number1 + " > " + number2; 56 } 42 43 if ( number1 <= number2 ) 44 result = result + "\n" + number1 + " <= " + number2; 45 46 if ( number1 >= number2 ) 47 result = result + "\n" + number1 + " >= " + number2; 48 31 if ( number1 == number2 ) 32 result = result + number1 + " == " + number2; 33
10 String firstNumber, // first string entered by user 11 secondNumber, // second string entered by user 12 result; // a string containing the output 13 int number1, // first number to compare 14 number2; // second number to compare 17 firstNumber = 18 JOptionPane.showInputDialog( "Enter first integer:" ); 21 secondNumber = 22 JOptionPane.showInputDialog( "Enter second integer:" ); 2.6 Decision Making: Equality and Relational Operators • Lines 1-9: Comments, importJOptionPane, beginclass Comparison and main • Declare variables • Input data from user and assign to variables
25 number1 = Integer.parseInt( firstNumber ); 26 number2 = Integer.parseInt( secondNumber ); 29 result = ""; 31 if ( number1 == number2 ) 32 result = result + number1 + " == " + number2; 2.6 Decision Making: Equality and Relational Operators • Convert Strings to ints and assign to variables • Initialize String result with the empty string • if structure to test for equality using (==) • If the variables are equal (condition true) • String result concatenated using + operator • result = result + other strings • Right side evaluated first: result and other strings are concatenated to form a new string • The new string is assigned to result • If variables are not equal, then statement skipped
34 if ( number1 != number2 ) 35 result = result + number1 + " != " + number2; 36 37 if ( number1 < number2 ) 38 result = result + "\n" + number1 + " < " + number2; 39 40 if ( number1 > number2 ) 41 result = result + "\n" + number1 + " > " + number2; 42 43 if ( number1 <= number2 ) 44 result = result + "\n" + number1 + " <= " + number2; 45 46 if ( number1 >= number2 ) 47 result = result + "\n" + number1 + " >= " + number2; 48 2.6 Decision Making: Equality and Relational Operators • Other if structures • Lines 50-52: result displayed in a dialog box using showMessageDialog