Download Lecture4

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Smalltalk wikipedia , lookup

Falcon (programming language) wikipedia , lookup

C++ wikipedia , lookup

Go (programming language) wikipedia , lookup

Corecursion wikipedia , lookup

C Sharp syntax wikipedia , lookup

String literal wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

C syntax wikipedia , lookup

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