|
Home | Résumé | Courses | Contact | Useful Links | Favorite Links | USC - Homepage |
Computer Science 1 - (CPTR151) - Lectures
Lecture 2 - Version 1.2.1
Lecture Outline
2.1 Introduction
2.2 A First Program in Java: Printing a Line of Text
2.3 Modifying Our First Java Program
2.4 Displaying Text in a Dialog Box
2.5 Another Java Application: Adding Integers
2.6 Memory Concepts
2.7 Arithmetic
2.8 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
A First Program in Java: Printing a Line of Text
• Application
–
Program that executes using the java interpreter
•
Sample program
–
Show program, then analyze each line
1 // Fig. 2.1: Welcome1.java
2 // Text-printing program.
3
4 public class Welcome1 {
5
6 // main method begins execution of Java application
7 public static void main(
String args[] )
8 {
9 System.out.println( "Welcome
to Java Programming!" );
10
11 } // end method main
12
13 } // end class Welcome1
Welcome
to Java Programming!
1 // Fig. 2.1: Welcome1.java
–Comments start with: //
•
Comments ignored during program execution
•
Document and describe code
•
Provides code readability
–
Traditional comments: /* ... */
/* This is a traditional
comment. It can be
split over many lines */
2 // Text-printing program.
– Another line of comments
– Note: line numbers not part of program, added for reference
3
– Blank line
• Makes program more readable
• Blank lines, spaces, and tabs are white-space characters
– Ignored by compiler
4 public class
Welcome1
{
–Begins class declaration for class
Welcome1
• Every Java program has at least one user-defined class
•
Keyword: words reserved for use by Java–class keyword followed by class
name
• Naming classes: capitalize every word
– SampleClassName
– Name of class called identifier
•
Series of characters consisting of letters, digits,
underscores ( _ )
and dollar signs ( $ )
•
Does not begin with a digit, has no spaces
•
Examples: Welcome1, $value, _value, button7
–
7button is invalid
•
Java is case sensitive (capitalization matters)
–
a1 and
A1 are different
–
For chapters 2 to 7, use public
keyword
•
Certain details not important now
•
Mimic certain features, discussions later
– Saving files
•
File name must be class name with
.java extension
•
Welcome1.java
–
Left brace {
•
Begins body of every class
•
Right brace ends declarations (line 13)
7 public
static void
main( String args[] )
– Part of every Java application
•
Applications begin executing at main
–
Parenthesis indicate main is a method (see ch. 6)
–
Java applications contain one or more methods
7 public
static void main( String args[] )
• Exactly one method must be called
main
–
Methods can perform tasks and return information
•
void means
main returns no information
8 {
– Left brace begins body of method declaration
•
Ended by right brace } (line 11)
9
System.out.println( "Welcome
to Java Programming!"
);
– Instructs computer to perform an action
•
Prints string of characters
–
String - series characters inside double quotes
•
White-spaces in strings are not ignored by compiler
–
System.out
•
Standard output object
•
Print to command window (i.e., MS-DOS prompt)
–
Method System.out.println
•
Displays line of text
•
Argument inside parenthesis
–
This line known as a statement
•
Statements must end with semicolon ;
11
} //
end method main
– Ends method declaration
13
}
//
end class Welcome1
– Ends class declaration
–
Can add comments to keep track of ending braces
–
Remember: compiler ignores comments
–
Comments can start on same line after code
A Simple Program: Printing a Line of Text
• Compiling a program
–
Open a command prompt window, go to directory where program is stored
–
Type javac Welcome1.java
–
If no errors, Welcome1.class created
•
Has bytecodes that represent application
•
Bytecodes passed to Java interpreter
• Executing a program
–
Type java Welcome1
•
Interpreter loads .class file for class Welcome1
•
.class extension omitted from command
–
Interpreter calls method main

Executing Welcome1 in a Microsoft Windows 2000 Command Prompt.
Modifying Our First Java Program
• Modify example in Fig. 2.1 to print same contents using different code
• Modifying programs
– Welcome2.java (Fig. 2.3) produces same output as
– Welcome1.java (Fig. 2.1)
– Using different code
9
System.out.print(
"Welcome
to " );
10
System.out.println(
"Java
Programming!" );
– Line 9 displays “Welcome to ” with cursor remaining on printed
line
–
Line 10 displays “Java Programming! ” on same line with cursor
on next line
1 // Fig. 2.3: Welcome2.java
2 // Printing a line of text with multiple statements.
3
4 public class Welcome2 {
5
6 // main method begins execution of Java application
7 public static void main( String args[] )
8 {
9 System.out.print( "Welcome to " ); //
10 System.out.println( "Java Programming!" );
11
12 } // end method main
13
14 } // end class Welcome2
Welcome to Java Programming!
(System.out.print keeps the cursor
on the same line, so System.out.println continues
on the same line.)
• Newline characters (\n)
–
Interpreted as “special characters” by methods System.out.print
and System.out.println
– Indicates cursor should be on next line
– Welcome3.java (Fig. 2.4)
9
System.out.println( "Welcome\nto\nJava\nProgramming!" );
– Line breaks at \n
• 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 of text with a single statement.
3
4 public class Welcome3 {
5
6 // main method begins execution of Java application
7 public static void main( String args[] )
8 {
9 System.out.println( "Welcome\nto\nJava\nProgramming!" );
10
11 } // end method main
12
13 } // end class Welcome3
Welcome
to
Java
Programming!
(Notice how a new line is output for each \n escape sequence.)
Escape characters
– Backslash ( \ )
– Indicates special characters be output
Displaying Text in a Dialog Box
• Display
– Most Java applications use windows or a dialog box
• We have used command window
– Class JOptionPane allows us to use dialog boxes
• Packages
– 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
• Package has classes for using Graphical User Interfaces (GUIs)

1 // Fig. 2.6: Welcome4.java
2 // Printing multiple lines in a dialog box.
3
4 // Java packages
5 import javax.swing.JOptionPane; // program uses JOptionPane
6
7 public class Welcome4 {
8
9 // main method begins execution of Java application
10 public static void main( String args[] )
11 {
12 JOptionPane.showMessageDialog(null,
"Welcome\nto\nJava\nProgramming!" );
13
14
15 System.exit( 0 ); // terminate application with window
16
17 } // end method main
18
19 } // end class Welcome4

–Lines 1-2: comments as before
4
// Java packages
– Two groups of packages in Java API
– Core packages
• Begin with java
• Included with Java 2 Software Development Kit
– Extension packages
• Begin with javax
• New Java packages
5 import javax.swing.JOptionPane;
// program uses JOptionPane
– import declarations
• Used by compiler to identify and locate classes used in Java programs
• Tells compiler to load class JOptionPane from javax.swing package
Lines 6-11: Blank line, begin class Welcome4 and main
12
JOptionPane.showMessageDialog(null, "Welcome\nto\nJava\nProgramming!" );
– 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 using class name, dot (.) then method name
– All statements end with ;
•
A single statement can span multiple lines
•
Cannot split statement in middle of identifier or string
–
Executing lines 12 and 13 displays the dialog box

• Automatically includes an OK button
– Hides or dismisses dialog box
• Title bar has string Message
15
System.exit( 0 ); // terminate application with window
– Calls static method exit of class System
• Terminates application
– Use with any application displaying a GUI
• Because method is static, needs class name and dot (.)
• Identifiers starting with capital letters 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 declaration needed
• java.lang automatically imported in every Java program
– Lines 17-19: Braces to end Welcome4 and main
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.9: Addition.java
2 // Addition program that displays the sum of two numbers.
3
4 // Java packages
5 import javax.swing.JOptionPane; // program uses JOptionPane
6
7 public class Addition {
8
9 // main method begins execution of Java application
10 public static void main( String args[] )
11 {
12 String firstNumber; // first string entered by user
13 String secondNumber; // second string entered by user
14
15 int number1; // first number to add
16 int number2; // second number to add
17 int sum; // sum of number1 and number2
18
19 // read in first number from user as a String
20 firstNumber = JOptionPane.showInputDialog( "Enter first integer" );
21
22 // read in second number from user as a String
23 secondNumber = JOptionPane.showInputDialog( "Enter second integer" );
24
25
26 // convert numbers from type String to type int
27 number1 = Integer.parseInt( firstNumber );
28 number2 = Integer.parseInt( secondNumber );
29
30 // add numbers
31 sum = number1 + number2;
32
33 // display result
34 JOptionPane.showMessageDialog( null, "The sum is " + sum,
"Results", JOptionPane.PLAIN_MESSAGE );
35
36
37 System.exit( 0 ); // terminate application with window
38
39 } // end method main
40
41 } // end class Addition




5 import javax.swing.JOptionPane; // program uses
JOptionPane
–Location of JOptionPane for
use in the program
7 public class Addition {
– Begins public class Addition
• Recall that file name must be Addition.java
– Lines 10-11: main
12 String firstNumber; // first string entered by user
13 String secondNumber; // second string entered by user
– Declaration
• firstNumber and secondNumber are variables
– Variables
• Location in memory that stores a value
– Declare with name and type before use
• firstNumber and secondNumber are of type String (package java.lang)
– Hold strings
• Variable name: any valid identifier
• Declarations end with semicolons ;
13 String firstNumber, secondNumber;
– Can declare multiple variables of the same type
at a time
– Use comma separated list
– Can add comments to describe purpose of variables
15 int number1; // first number to add
16 int number2; // second number to add
17 int sum; // sum of number1 and number2
– Declares variables number1, number2, and sum
of type int
• int holds integer values (whole numbers): i.e., 0, -4, 97
• Types float and double can hold decimal numbers
• Type char can hold a single character: i.e., x, $, \n, 7
• Primitive types - more in Chapter 4
20 firstNumber = JOptionPane.showInputDialog( "Enter
first integer" );
– Reads 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 (non-integer) or click Cancel, error occurs
– Result of call to showInputDialog given to firstNumber using 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" )
23 secondNumber = JOptionPane.showInputDialog( "Enter second integer" );
– Similar to previous statement
• Assigns variable secondNumber to second integer input
27 number1 = Integer.parseInt( firstNumber );
28 number2 = Integer.parseInt( secondNumber );
– Method Integer.parseInt
• Converts String argument into an integer (type int)
– Class Integer in java.lang
• Integer returned by Integer.parseInt is assigned to variable number1
(line 27)
– Remember that number1 was declared as type int
• Line 28 similar
31 sum = number1 + number2;
– Assignment statement
• Calculates sum of number1 and number2 (right hand side)
• Uses assignment operator = to assign result to variable sum
• Read as: sum gets the value of number1 + number2
• number1 and number2 are operands
34 JOptionPane.showMessageDialog( null, "The
sum is " + sum, "Results", JOptionPane.PLAIN_MESSAGE );
– Use showMessageDialog to display results
–"
The sum is " + sum
•
Uses the operator + to "add" the string literal "The sum is" and
sum
• Concatenation of a String and another 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 11
– Different version of showMessageDialog
• Requires four arguments (instead of two as before)
• First argument: null for now
• Second: string to display
• Third: string in title bar
• Fourth: type of message dialog with icon
– Line 35 no icon: JOptionPane.PLAIN_MESSAGE


Memory Concepts
•Variables
– Every variable has a name, a type, a size and a value
• Name corresponds to location in memory
– When new value is placed into a variable, replaces (and destroys) previous
value
– Reading variables from memory does not change them

Arithmetic
• Arithmetic calculations used in most programs
–
Usage
•
* for multiplication
•
/ for division
•
+, -
•
No operator for exponentiation (more in Chapter 5)
–
Integer division truncates remainder
7 / 5 evaluates to 1
•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
–
Follows PEMDAS
•
Parentheses, Exponents, Multiplication,
Division, Addition, Subtraction
Decision Making: Equality and Relational Operators
• if control statement
– 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 statements can be formed using equality or relational operators
if ( condition )
statement executed if condition true
• No semicolon needed after condition
– When IF is true, Else conditional task not performed

• Upcoming program uses if statements
– Discussion afterwards
1 // Fig. 2.20: Comparison.java
2 // Compare integers using if statements, relational operators
3 // and equality operators.
4
5 // Java packages
6 import javax.swing.JOptionPane;
7
8 public class Comparison {
9
10 // main method begins execution of Java application
11 public static void main( String args[] )
12 {
13 String firstNumber; // first string entered by user
14 String secondNumber; // second string entered by user
15 String result; // a string containing the output
16
17 int number1; // first number to compare
18 int number2; // second number to compare
19
20 // read first number from user as a string
21 firstNumber = JOptionPane.showInputDialog( "Enter first integer:" );
22
23 // read second number from user as a string
24 secondNumber =
25 JOptionPane.showInputDialog( "Enter second integer:" );
26
27 // convert numbers from type String to type int
28 number1 = Integer.parseInt( firstNumber );
29 number2 = Integer.parseInt( secondNumber );
30
31 // initialize result to empty String
32 result = "";
33
34 if ( number1 == number2 )
35 result = result + number1 + " == " + number2;
36
37 if ( number1 != number2 )
38 result = r esult + 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
49 if ( number1 >= number2 )
50 result = result + "\n" + number1 + " >= " + number2;
51
52 // Display results
53 JOptionPane.showMessageDialog( null, result, "Comparison Results", JOptionPane.INFORMATION_MESSAGE );
54
55
56 System.exit( 0 ); // terminate application
57
58 } // end method main
59
60 } // end class Comparison


– Lines 1-12: Comments, import JOptionPane,
begin class Comparison and main
–
Lines 13-18: declare variables
• Can use comma-separated lists instead:
13 String firstNumber,
14 secondNumber,
15 result;
– Lines
21-30: obtain user-input numbers and parses input string into integer variables
32 result = "";
– Initialize result with empty string
34 if ( number1 == number2 )
35 result = result + number1 + " == " + number2;
– if statement to test for equality using (==)
•
If variables equal (condition true)
–
result concatenated using + operator
–
result = result + other strings
–
Right side evaluated first, new string assigned to result
•
If variables not equal, statement skipped
–Lines 37-50: other if statements testing for less than, more than,
etc.
•
If number1 = 123 and number2 = 123
–
Line 34 evaluates true (if number1 = = number 2)
•
Because number1 equals number2
–
Line 40 evaluates false (if number1 < number 2)
•
Because number1 is not less than number2
–
Line 49 evaluates true (if number1 >= number2)
•
Because number1 is greater than or equal to number2
–
Lines 53-54: result displayed in a dialog box using showMessageDialog
• Precedence of operators
–
All operators except for = (assignment) associates from left to right
•
For example: x = y = z is evaluated x = (y = z)

Source: Java: How to Program – 5th Edition – Deitel & Deitel
|
Home | Résumé | Courses | Contact | Useful Links | Favorite Links | USC - Homepage |