Chapter 2 Elementary Programming
Chapter 2 Elementary Programming
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
Motivations
In the preceding chapter, you learned how to
create, compile, and run a Java program. Starting
from this chapter, you will learn how to solve
practical problems programmatically. Through
these problems, you will learn Java primitive data
types and related subjects, such as variables,
constants, data types, operators, expressions, and
input and output.
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
Objectives
animation
allocate memory
for radius
radius
no value
// Assign a radius
radius = 20;
// Compute area
area = radius * radius * 3.14159;
// Display results
System.out.println("The area for the circle of radius " +
radius + " is " + area);
}
}
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
animation
memory
radius
no value
area
no value
allocate memory
for area
// Display results
System.out.println("The area for the circle of radius " +
radius + " is " + area);
}
}
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
animation
assign 20 to radius
radius
area
20
no value
// Assign a radius
radius = 20;
// Compute area
area = radius * radius * 3.14159;
// Display results
System.out.println("The area for the circle of radius " +
radius + " is " + area);
}
}
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
animation
memory
radius
area
20
1256.636
// Assign a radius
radius = 20;
// Compute area
area = radius * radius * 3.14159;
// Display results
System.out.println("The area for the circle of radius " +
radius + " is " + area);
}
}
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
animation
memory
radius
area
20
1256.636
// Assign a radius
radius = 20;
// Compute area
area = radius * radius * 3.14159;
// Display results
System.out.println("The area for the circle of radius " +
radius + " is " + area);
}
}
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
ComputeAverage
Run
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
10
Identifiers
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
11
Variables
// Compute the first area
radius = 1.0;
area = radius * radius * 3.14159;
System.out.println("The area is +
area + " for radius "+radius);
// Compute the second area
radius = 2.0;
area = radius * radius * 3.14159;
System.out.println("The area is +
area + " for radius "+radius);
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
12
Declaring Variables
int x;
// Declare x to be an
// integer variable;
// Declare a to be a
// character variable;
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
13
Assignment Statements
x = 1;
// Assign 1 to x;
radius = 1.0;
a = 'A';
// Assign 'A' to a;
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
14
int x = 1;
double d = 1.4;
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
15
Named Constants
final datatype CONSTANTNAME = VALUE;
final double PI = 3.14159;
final int SIZE = 3;
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
16
Naming Conventions
Choose meaningful and descriptive names.
Variables and method names:
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
17
Class names:
Capitalize the first letter of each word in
the name. For example, the class name
ComputeArea.
Constants:
Capitalize all letters in constants, and use
underscores to connect words. For
example, the constant PI and
MAX_VALUE
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
18
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
19
Numeric Operators
Name
Meaning
Example
Result
Addition
34 + 1
35
Subtraction
34.0 0.1
33.9
Multiplication
300 * 30
9000
Division
1.0 / 2.0
0.5
Remainder
20 % 3
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
20
Integer Division
+, -, *, /, and %
5 / 2 yields an integer 2.
5.0 / 2 yields a double value 2.5
5 % 2 yields 1 (the remainder of the division)
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
21
Remainder Operator
Remainder is very useful in programming. For example, an
even number % 2 is always 0 and an odd number % 2 is always
1. So you can use this property to determine whether a number
is even or odd. Suppose today is Saturday and you and your
After 10 days
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
22
DisplayTime
Run
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
23
NOTE
Calculations involving floating-point numbers are
approximated because these numbers are not stored
with complete accuracy. For example,
System.out.println(1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1);
displays 0.5000000000000001, not 0.5, and
System.out.println(1.0 - 0.9);
displays 0.09999999999999998, not 0.1. Integers are
stored precisely. Therefore, calculations with integers
yield a precise integer result.
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
24
Exponent Operations
System.out.println(Math.pow(2, 3));
// Displays 8.0
System.out.println(Math.pow(4, 0.5));
// Displays 2.0
System.out.println(Math.pow(2.5, 2));
// Displays 6.25
System.out.println(Math.pow(2.5, -2));
// Displays 0.16
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
25
Number Literals
A literal is a constant value that appears directly
in the program. For example, 34, 1,000,000, and
5.0 are literals in the following statements:
int i = 34;
long x = 1000000;
double d = 5.0;
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
26
Integer Literals
An integer literal can be assigned to an integer variable as
long as it can fit into the variable. A compilation error
would occur if the literal were too large for the variable to
hold. For example, the statement byte b = 1000 would
cause a compilation error, because 1000 cannot be stored
in a variable of the byte type.
An integer literal is assumed to be of the int type, whose
value is between -231 (-2147483648) to 2311
(2147483647). To denote an integer literal of the long
type, append it with the letter L or l. L is preferred because
l (lowercase L) can easily be confused with 1 (the digit
one).
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
27
Floating-Point Literals
Floating-point literals are written with a decimal
point. By default, a floating-point literal is treated
as a double type value. For example, 5.0 is
considered a double value, not a float value. You
can make a number a float by appending the letter f
or F, and make a number a double by appending
the letter d or D. For example, you can use 100.2f
or 100.2F for a float number, and 100.2d or 100.2D
for a double number.
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
28
Scientific Notation
Floating-point literals can also be specified in
scientific notation, for example, 1.23456e+2,
same as 1.23456e2, is equivalent to 123.456, and
1.23456e-2 is equivalent to 0.0123456. E (or e)
represents an exponent and it can be either in
lowercase or uppercase.
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
29
Arithmetic Expressions
3 4 x 10( y 5)( a b c )
4 9 x
9(
)
5
x
x
y
is translated to
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
30
(3) multiplication
(4) addition
(5) addition
(6) subtraction
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
31
Run
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
32
Elapsed
time
Time
Unix Epoch
01-01-1970
00:00:00 GMT
Current Time
System.currentTimeMills()
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
Run
33
Equivalent
+=
i += 8
i = i + 8
-=
f -= 8.0
f = f - 8.0
*=
i *= 8
i = i * 8
/=
i /= 8
i = i / 8
%=
i %= 8
i = i % 8
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
34
Increment and
Decrement Operators
Operator
++var
Name
preincrement
var++
postincrement
--var
predecrement
var--
postdecrement
Description
The expression (++var) increments var by 1 and evaluates
to the new value in var after the increment.
The expression (var++) evaluates to the original value
in var and increments var by 1.
The expression (--var) decrements var by 1 and evaluates
to the new value in var after the decrement.
The expression (var--) evaluates to the original value
in var and decrements var by 1.
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
35
Increment and
Decrement Operators, cont.
int i = 10;
int newNum = 10 * i++;
Same effect as
int newNum = 10 * i;
i = i + 1;
int i = 10;
Same effect as
int newNum = 10 * (++i);
i = i + 1;
int newNum = 10 * i;
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
36
Increment and
Decrement Operators, cont.
Using increment and decrement operators makes
expressions short, but it also makes them complex and
difficult to read. Avoid using these operators in expressions
that modify multiple variables, or the same variable for
multiple times such as this: int k = ++i + i.
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
37
38
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
39
Conversion Rules
When performing a binary operation involving two
operands of different types, Java automatically
converts the operand based on the following rules:
1. If one of the operands is double, the other is
converted into double.
2. Otherwise, if one of the operands is float, the other is
converted into float.
3. Otherwise, if one of the operands is long, the other is
converted into long.
4. Otherwise, both operands are converted into int.
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
40
Type Casting
Implicit casting
double d = 3; (type widening)
Explicit casting
int i = (int)3.0; (type narrowing)
int i = (int)3.9; (Fraction part is
truncated)
What is wrong?
int x = 5 / 2.0;
range increases
byte, short, int, long, float, double
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
41
SalesTax
Run
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
42
43
Testing
Deployment
Maintenance
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
44
Requirement Specification
A formal process that seeks to understand
the problem and document in detail what
the software system needs to do. This
phase involves close interaction between
users and designers.
Requirement
Specification
System
Analysis
System
Design
Implementation
Testing
Deployment
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
Maintenance
45
System Analysis
Requirement
Specification
System
Analysis
System
Design
Implementation
Testing
Deployment
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
Maintenance
46
System Design
The process of designing the
systems components.
Requirement
Specification
System
Analysis
System
Design
Implementation
Testing
Deployment
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
Maintenance
47
IPO
Requirement
Specification
System
Analysis
Testing
Deployment
Maintenance
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
48
Implementation
The process of translating the
system design into programs.
Separate programs are written for
each component and put to work
together.
Requirement
Specification
System
Analysis
System
Design
Implementation
Testing
Deployment
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
Maintenance
49
Testing
Requirement
Specification
System
Analysis
System
Design
Implementation
Testing
Deployment
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
Maintenance
50
Deployment
Requirement
Specification
System
Analysis
System
Design
Implementation
Testing
Deployment
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
Maintenance
51
Maintenance
Requirement
Specification
System
Analysis
System
Design
Implementation
Testing
Deployment
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
Maintenance
52
Problem:
Computing Loan Payments
This program lets the user enter the interest
rate, number of years, and loan amount, and
computes monthly payment and total
payment.
loanAmount monthlyInterestRate
monthlyPayment
1
1
(1 monthlyInterestRate ) numberOfYears12
ComputeLoan
Run
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
53
54
Unicode Format
Java characters use Unicode, a 16-bit encoding scheme
established by the Unicode Consortium to support the
interchange, processing, and display of written texts in the
worlds diverse languages. Unicode takes two bytes,
preceded by \u, expressed in four hexadecimal numbers
that run from '\u0000' to '\uFFFF'. So, Unicode can
represent 65535 + 1 characters.
Unicode \u03b1 \u03b2 \u03b3 for three Greek
letters
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
55
DisplayUnicode
Run
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
56
Escape Sequence
Unicode
Backspace
\b
\u0008
Tab
\t
\u0009
Linefeed
\n
\u000A
Carriage return \r
\u000D
Backslash
\\
\u005C
Single Quote
\'
\u0027
Double Quote
\"
\u0022
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
57
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
58
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
59
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
60
Run
61
Trace ComputeChange
Suppose amount is 11.56
int remainingAmount = (int)(amount * 100);
// Find the number of one dollars
int numberOfOneDollars = remainingAmount / 100;
remainingAmount = remainingAmount % 100;
remainingAmount
1156
remainingAmount
initialized
62
animation
Trace ComputeChange
Suppose amount is 11.56
remainingAmount
numberOfOneDollars
1156
11
numberOfOneDollars
assigned
63
animation
Trace ComputeChange
Suppose amount is 11.56
remainingAmount
56
numberOfOneDollars
11
remainingAmount
updated
64
animation
Trace ComputeChange
Suppose amount is 11.56
remainingAmount
56
numberOfOneDollars
11
numberOfOneQuarters
numberOfOneQuarters
assigned
65
animation
Trace ComputeChange
Suppose amount is 11.56
remainingAmount
numberOfOneDollars
11
numberOfQuarters
remainingAmount
updated
66
67
String Concatenation
// Three strings are concatenated
String message = "Welcome " + "to " + "Java";
// String Chapter is concatenated with number 2
String s = "Chapter" + 2; // s becomes Chapter2
// String Supplement is concatenated with character B
String s1 = "Supplement" + 'B'; // s1 becomes SupplementB
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
68
Debugging
Logic errors are called bugs. The process of finding and
correcting errors is called debugging. A common approach
to debugging is to use a combination of methods to narrow
down to the part of the program where the bug is located.
You can hand-trace the program (i.e., catch errors by
reading the program), or you can insert print statements in
order to show the values of the variables or the execution
flow of the program. This approach might work for a short,
simple program. But for a large, complex program, the
most effective approach for debugging is to use a debugger
utility.
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
69
Debugger
Debugger is a program that facilitates debugging.
You can use a debugger to
Execute
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
70
JOptionPane Input
This book provides two ways of obtaining input.
1.
2.
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
71
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
72
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
73
74
75
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
76
loanAmount monthlyInterestRate
1
1
numberOfYears12
(1 monthlyInterestRate )
ComputeLoanUsingInputDialog
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
Run
77
Companion
Website
Debugging in NetBeans
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
78
Companion
Website
Debugging in Eclipse
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All right
s reserved.
79