* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Lecture4
Survey
Document related concepts
Transcript
Chapter 2: Java
Fundamentals cont’d
Lecture 4: Monday Sept 11, 2006
Outline
2.1 The Parts of a Java Program
2.2 The print and println Methods, and the Java Standard Class
Library
2.3 Variables and Literals
2.4 Primitive Data Types
2.5 Arithmetic Operators
2.6 Combined Assignment Operators
2.7 Conversion Between Primitive Types
2.8 Creating Named Constants with final
2.9 The String Class
2.10 Scope
2.11 Comments
2.12 Programming Style
2.13 Reading Keyboard Input
2.14 Dialog Boxes
2.15 Common Errors to Avoid
Operator Precedence
What is the result of:
Polynomial = 1+2*3+ 6/2 -2;
Is it ?
(1+2)*3 + 6/(2-2)
1+(2*3) +(6/2)-2
(1+2)*3 + (6/2)-2
Precedence Rules
Always evaluate * , / and % before +
and –
Always negate before any calculations
*, / and % have same precedence
+ and – have same precedence
If equal precedence then evaluate
from left to right except for negations
where we evaluate from right to left
Precedence examples
Polynomial = 1+2*3+ 6/2 – 2;
Polynomial has the value of 1+6+3-2=8
Polynomial = –1 + 5 – 2; // 2
Polynomial = –(–3) + –(–5); //8
Grouping with parentheses
You can use parentheses to force the
evaluation of a formula
Examples:
x * ( y + z*z ) instead of x*y + z*z
x * ( y * ( z + 165 ) + 85 ) – 65
Average = (a +b +c ) /3;
The Math class
value
holds
value
holds
= Math.pow( x,y); // now value
x to the power of y
= Math.sqrt( x); //now value
the square root of x
Combined Assignment Operators
+=
x += 1;
x = x + 1;
–=
x –= 1;
x = x – 1;
*=
x *= 1;
x = x * 1;
/=
x /= 1;
x = x / 1;
%=
x %= 1;
x = x % 1;
2.7 Conversion between Primitive
Data Types
Before a value is stored in a variable,
Java checks the Data Type of the
value and the variable
If the data types are compatible then
Java performs the conversion
automatically No Error
If the data types are not compatible
then Java issues an error.
2.7 Conversion between Primitive
Data Types
A widening
conversion is the
conversion of a
small value to a
larger one
A narrowing
conversion is the
conversion of a
large value to a
smaller one
double
float
long
int
short
byte
largest
smallest
Widening conversion
Example 1:
double x;
int y = 10;
x = y;
Example 2:
int x;
short y =2;
x= y;
Narrowing Conversion
We have to perform casting i.e. the
name of the smaller data type is put
in parentheses in front of the value
Example:
int number;
double pi = 3.14;
number = (int) pi;
Cast operator
Used to convert from one primitive
data type to another
Must be used for narrowing
conversions
Example:
int pies = 10, people = 4;
double piesPerPerson;
piesPerPerson = pies /people;
(double)(10/4)=(double)
= (double)(2)
= 2.0
piesPerPerson
pies/people;
because it is an integer division
piesPerPerson
=pies/(double)
people;
10/4 = 2 because
it is an integer division
10.0/4 = 2.5 because one of the numbers
piesPerPerson=(double)(pies/people);
is a double
10/4.0 = 2.5 because people is double
Mixed Integer Operations
The result of an arithmetic operation that
involves only byte, short, or int variables is
always an int even if both variables are of
data type short or byte
Example:
short x =5, y =7;
short z = x+y; // this statement gives an error
short z = (short) ( x+y ); //correct
Mixed Integer Operations
If one of the operator’s operands is a
double then the result of the
operation is a double
If one of the operator’s operands is a
float then the result of the operation
is a float
If one of the operator’s operands is a
long then the result of the operation
is a long
Creating named constants with
final
A named constant is a variable whose
value is read-only and cannot be
changed
To create a named constant add the
word final to declaration
An initialization value is required
when declaring a constant
Example:
final double INTEREST_RATE = 0.069;
More about named constants
When naming a constant, the variable
name should be written in all uppercase
characters.
Math.PI is a constant that holds the value
of pi ( i.e. 3.14159 …)
Math.PI is already declared and initialized
so it ready to use. Example:
double area = Math.PI * radius * radius ;
The String class
A String literal is any text enclosed in
quotations
A String is the DataType of a variable
that can store String literals
Example of a String variable:
String name = “CS 0007”;
System.out.println( name );
The String class
To determine how many letters are
stored in a String variable (name) use
name.length();
Example:
String mycourse = “CS 0007”;
int number = mycourse.length();
String methods
charAt(index)
index is an integer and specifies the
character position in the String
This method returns the character at the
specified position
Example:
char letter;
String myText = “This is my Text”;
letter = myText.charAt(8);
String methods
myText.length returns 15
because there are 15 characters
Th i s
i s
0 1 2 3 4 5 6 7
my
8
Tex t
9 1 1 1 1 1
0 1 2 3 4
myText.charAt(8) returns m
because m is the letter at position 8
String methods
toLowerCase()
This method returns a new String that
has all of the characters of the original
String but in lowercase
Example:
String bigName = “I am BIG!!”;
String smallName =
bigName.toLowerCase();
// now smallName holds “i am big!!”
String methods
toUpperCase()
Same as toLowerCase() but it converts
all the characters to uppercase
Example:
String smallName = “I am Big!!”;
String bigName =
smallName.toUpperCase();
// now bigName holds “I AM BIG!!”
Example:
String message = "Java is Great Fun!";
String upper = message.toUpperCase();
String lower = message.toLowerCase();
char letter = message.charAt(2);
int stringSize = message.length();
System.out.println(message);
System.out.println(upper);
System.out.println(lower);
System.out.println(letter);
System.out.println(stringSize);
Scope
The variable scope is the part of the
program that has access to it
public class Scope
{
public static void main(String[] args)
{
System.out.println(value); // ERROR!
int value = 100;
}
}
Scope
public class Scope {
public static void main(String[] args){
int number = 100;
System.out.println(number);
int number = 200; //ERROR
}
}
Homework due Monday Sept 18
Do Exercise 2 in the programming
challenges page 113
Print your code and submit it in class