SlideShare a Scribd company logo
1 of 179
Download to read offline
CSE1007
Java Basics
Keywords, Variables, Statements, Data
Types Arrays
1
Keywords
➢ abstract
➢ default
➢ if
➢ private
➢ this
➢ boolean
➢ do
➢ implements
➢ protected
➢ throw
➢ extends
➢ null**
➢ break
➢ double
➢ import
➢ public
➢ throws
➢ byte
➢ else
➢ instanceof
➢ return
➢ transient
➢ case
➢ int
➢ false*
➢ short
➢ try
➢ catch
➢ final
➢ interface
➢ static
➢ void
➢ char
➢ finally
➢ long
➢ strictfp
➢ volatile
➢ true*
➢ class
➢ float
➢ native
➢ super
➢ while
➢ const
➢ for
➢ new
➢ switch
➢ continue
➢ goto
➢ package
➢ synchronized
*boolean literals
** null literal
2
Identifiers
➢ Names of things
➢ Cannot be the same as any keyword
➢ Are case-sensitive
➢ Consist of and must begin with:
➢ Letters
➢ Digits
➢ The underscore character (_)
➢ The dollar sign ($)
3
Data Types
➢ Data type: set of values together with a
set of operations
4
Primitive Data Types
5
Primitive Data Types
➢ Floating-Point Data Types
➢ float: precision = 6 or 7
➢ double: precision = 15
➢ Boolean
➢ boolean
• true
• false
6
Integral Data Types
7
Size for Java's Primitive Types
8
Values and Memory Allocation for
Integral Data Types
9
Literals
➢ Null literal
➢null
➢ boolean
➢true false
➢ int
➢Default for integrals
➢2 0372 0xDadaCafe 1996 0x00FF00FF
➢ long
➢Must end with “L” or “l”
➢0l 0777L 0x100000000L 2147483648L
0xC0B0L
10
Floating-Point Literals
➢float
➢Must end with “f” or “F”
➢1e1f 2.f .3f 0f 3.14F 6.022137e+23f
➢double
➢Default for floating-point types
➢1e1 2. .3 0.0 3.14 1e-9d 1e137
11
Character Literals
➢char
➢Must be in single quotes
➢Escape character is 
• 't' for tab, 'n' for newline, '' for '', '' for ''‘, etc.
• If followed by numbers, represents the unicode
ascii value of that character
➢Examples:
• 'a' '%' 't' '' ''' 'u03a9' 'uFFFF' '177'
➢Cannot have more than one character
• 'abc‘ is not a valid character
12
Commonly Used Escape
Sequences
13
String Literals
➢ Anything in double quotes
➢ Examples:
➢"" // the empty string
➢""" // a string containing " alone
➢"This is a string" // a string containing 16 characters
➢"This is a " + // a string-valued constant expression,
"two-line string" // formed from two string literals
➢ NOT Strings:
➢‘abc’
14
15
Variables
“Once a programmer has understood the use
of variables, he has understood the essence
of programming”
16
Programs that examine data
➢ We have already seen that we can print text on the
screen using println and String literals:
System.out.println("Hello, world!");
➢ Now we will learn how to print and manipulate other
kinds of data, such as numbers:
System.out.println(42);
System.out.println(3 + 5 * 7);
System.out.println(12.5 / 8.0);
➢ data: Numbers, characters, or other values that are
processed by a human or computer.
➢ Useful computer programs manipulate data.
17
Expressions
➢ expression: A data value, or a set of operations that
compute a data value.
➢ Example: 1 + 4 * 3
➢ The simplest expression is a literal value.
➢ A more complex expression can have operators
and/or parentheses.
• The values that an operator applies to are called operands.
➢ 5 common arithmetic operators we will use:
+ (addition)
- (subtraction or negation)
* (multiplication)
/ (division)
% (modulus, a.k.a. remainder)
18
Evaluating expressions
➢ When your Java program executes and encounters a line with an
expression, the expression is evaluated (its value is computed).
➢ The expression 3 * 4 is evaluated to obtain 12.
➢ System.out.println(3 * 4) prints 12, not 3 * 4.
(How could we print 3 * 4 on the screen?)
➢ When an expression contains more than one operator of the same
kind, it is evaluated
left-to-right.
➢ Example: 1 + 2 + 3 is (1 + 2) + 3 which is 6
➢ Example: 1 - 2 - 3 is (1 - 2) - 3 which is -4
(not the same as 1 - (2 - 3) which is 2)
19
Integer division with /
➢ 14 / 4 evaluates to 3, not 3.5.
➢ Back to division in 4th grade
➢ In Java, when we divide integers, the result is also an integer: the
integer quotient.
➢ The integer quotient of dividing 14 by 4 is 3.
The integer remainder of dividing 14 by 4 is 2.
➢ Imagine that you were doing long division:
3 52
4 ) 14 27 ) 1425
12 135
2 75
54
21
➢ Examples:
• 35 / 5 evaluates to 7
• 84 / 10 evaluates to 8
• 156 / 100 evaluates to 1
➢ Dividing by 0 causes your program to crash.
➢ Try it!
20
Integer remainder with %
➢ The % operator computes the remainder from a division of integers.
➢ Example: 14 % 4 is 2
➢ Example: 218 % 5 is 3
3 43
4 ) 14 5 ) 218
12 20
2 18
15
3
➢ What do the following expressions evaluate to?
➢ 45 % 6
➢ 2 % 2
➢ 8 % 20
➢ 11 % 0
21
Applications of % operator
➢ What expression obtains the last digit (units place) of a
number?
➢ Example: From 230857, obtain the 7.
➢ How could we obtain the last 4 digits of a Social Security
Number?
➢ Example: From 658236489, obtain 6489.
➢ What expression obtains the second-to-last digit (tens
place) of a number?
➢ Example: From 7342, obtain the 4.
➢ Can the % operator help us determine whether a number is
odd? Can it help us determine whether a number is
divisible by, say, 27?
22
Operator precedence
➢ How does Java evaluate 1 + 3 * 4?
Is it (1 + 3) * 4, or is it 1 + (3 * 4)?
➢ In a complex expression with several operators, Java uses
internal rules of precedence to decide the order in which to apply
the operators.
➢ precedence: Order in which operations are computed in
an expression.
➢ Multiplicative operators have a higher level of precedence than
additive operators, so they are evaluated first.
• * / % before + -
➢ In our example, * has higher precedence than +, just like on a
scientific calculator, so 1 + 3 * 4 evaluates to 13.
➢ Parentheses can be used to override a precedence.
(1 + 3) * 4 evaluates to 16.
23
Precedence examples
➢ 1 * 2 + 3 * 5 / 4
➢ _/
|
2 + 3 * 5 / 4
➢ _/
|
2 + 15 / 4
➢ ___/
|
2 + 3
➢ ________/
|
5
◼ 1 + 2 / 3 * 5 - 4
◼ _/
|
1 + 0 * 5 - 4
◼ ___/
|
1 + 0 - 4
◼ ______/
|
1 - 4
◼ _________/
|
-3
24
Precedence examples
➢ What do the following expressions evaluate to?
9 / 5
695 % 20
7 + 6 * 5
7 * 6 + 5
248 % 100 / 5
6 * 3 - 9 / 4
(5 - 7) * 4
6 + (18 % (17 - 12))
➢ Which parentheses above are unnecessary
(which do not change the order of evaluation?)
25
Real numbers
➢ The expressions we have seen so far used integers, but Java also
can manipulate real numbers (numbers with a decimal point).
➢ Examples: 6.022 -15.9997 42.0 2.143e17
➢ The operators we saw, + - * / % , as well as
parentheses ( ) , all work for real numbers as well.
➢ The / operator produces a more precise answer when used on real
numbers, rather than an integer quotient.
• Example: 15.0 / 2.0 evaluates to 7.5
➢ The % operator is not often used on real numbers.
➢ The same rules of precedence that apply to integers also apply to
real numbers.
➢ ( ) before * / % before + -
26
Real number example
➢ 1.5 * 2.4 + 3.3 * 4.25 / 5.5
➢ _/
|
3.6 + 3.3 * 4.25 / 5.5
➢ _/
|
3.6 + 14.025 / 5.5
➢ ___/
|
3.6 + 2.55
➢ _____________/
|
6.15
27
Real number precision
➢ Strange things are afoot with real numbers:
System.out.println( 11.0 – 10.91 );
➢ The mathematically correct answer is 0.09
➢ Instead, we get this:
➢ Unfortunately, the computer represents real numbers in
an imprecise way internally, so some calculations with
them are off by a very slight amount.
➢ We cannot do anything to change this.
➢ We will generally ignore this problem for this course and tolerate
the precision errors, but later on we will learn some ways to
produce a better output for examples like above.
➢ Example. Write 1/3 base 10 as a decimal in base 10 and then in base 3
28
Variables
➢ variable: A piece of your computer's memory
that is given a name and type, and can store a
value.
➢We use variables to store the results of a computation
and use those results later in our program.
➢Unlike a cheap calculator, which may only have
enough to store a few values, we can declare as
many variables as we want, limited only by the
memory are program is allowed to use.
29
Declaring variables
➢ variable declaration statement: A Java statement that
creates a new variable of a given type.
➢ A variable is declared by writing a statement that says its type,
and then its name. (The name is an identifier.)
➢ Declaration statement syntax:
<type> <name> ;
➢ Example: int x;
➢ Example: double myGPA;
➢ It is also legal to declare multiple variables of the same
type on one line:
<type> <name>, <name>, ..., <name> ;
➢ Example: int a, b, c;
30
More on declaring variables
➢ Declaring a variable sets aside a chunk of memory in which you can
store a value.
int x;
int y;
➢ A (crude) diagram of part of the computer's memory:
+---+ +---+
x | | y | | (The memory has no value in it yet.)
+---+ +---+
➢ The compiler will fail if you try to declare a variable twice, or declare
two variables with the same name.
➢ Illegal:
int x;
int x; // variable x already exists! ERROR
➢ When tracing code, draw boxes for variables!!
31
Assignment statements
➢ assignment statement: A Java statement that stores a value into a
variable's memory location.
➢ Variables must be declared before they can be assigned a value.
➢ Assignment statement syntax:
<name> = <value> ;
➢ Example: x = 3;
➢ Example: myGPA = 3.95;
➢ Another (crude) diagram of part of the computer's memory:
+---+ +------+
x | 3 | myGPA | 3.95 |
+---+ +------+
➢ Technically, = is an operator like + or *, called the assignment operator,
with very low precedence (it is carried out last).
32
More about assignment
➢ The <value> assigned to a variable can be a complex
expression. The expression will be evaluated, and the
variable will store the result.
➢ Example:
x = (2 + 8) / 3 * 5;
(The variable x now stores the value 15)
➢ A variable can be assigned a value more than once in
the program.
➢ Example (Draw the boxes!!):
int x;
x = 3;
System.out.println(x); // 3
x = 4 + 7;
System.out.println(x); // 11
33
Using variables' values
➢ Once a variable has been assigned a value, it can be
used in an expression, just like a literal value.
int x;
x = 3;
System.out.println(x * 5 - 1);
➢ The above has output equivalent to:
System.out.println(3 * 5 - 1);
➢ A variable that has not been assigned a value cannot be
used in an expression or println statement.
➢ Illegal:
int x;
System.out.println(x); // ERROR -- x has no
value
34
Assignment and algebra
➢ Though the assignment statement uses the = character,
it is not like an algebraic equation.
= means, "store the value on the right into the memory of the
variable on the left“
in Java = is a verb, not a statement of fact
➢ Illegal:
3 = 1 + 2;
(because 3 is not a piece of the computer's memory)
1 + 2 = x; // syntax error
➢ What do you suppose happens when a variable is used
on both sides of an assignment statement?
int x;
x = 3;
x = x + 2; // what happens?
35
Assignment and types
➢ A variable can only store a value of its own type.
➢ Illegal: x = 2.5; // ERROR: x can only store an int
➢ (Technically, the value does not need to be the same type as the
variable--it can be any type that Java knows how to convert into the
variable's type... see below.)
➢ An int value can be stored in a variable of type double. The value
is converted into the equivalent real number.
➢ Legal: double myGPA = 4;
+-----+
myGPA | 4.0 |
+-----+
36
Assignment examples
➢ What is the output of the following Java code?
int number;
number = 2 + 3 * 4;
System.out.println(number - 1);
number = 16 % 6;
System.out.println(2 * number);
➢ What is the output of the following Java code?
double average;
average = (9 + 8) / 2;
System.out.println(average);
average = (average * 2 + 10 + 8) / 4;
System.out.println(average);
37
Declaration and initialization
➢ A variable can be declared and assigned an initial value
in the same statement, to save lines in your program.
➢ Declaration and initialization statement syntax:
<type> <name> = <value> ;
➢ Example: double myGPA = 3.95;
➢ Example: int x = (11 % 3) + 12;
➢ It is also legal to declare/initialize several at once:
<type> <name> = <value> , <name> = <value> ;
➢ Example: int a = 2, b = 3, c = -4;
➢ Example: double grade = 3.5, delta = 0.1;
same effect as:
double myGPA;
myGPA = 3.95;
int x;
x = (11 % 3) + 12;
38
Multiple declaration error
➢ The compiler will fail if you try to declare-and-initialize a variable
twice.
➢ Illegal:
int x = 3;
System.out.println(x);
int x = 5; // variable x already exists! ERROR
System.out.println(x);
➢ This is the same as trying to declare x twice.
➢ What should the code have been if the programmer wanted to
change the value of x to 5 ?
39
Strings in expressions
➢ A String can be used in an expression.
➢ But the only operator Strings understand is + , and its meaning is
different.
➢ A + operator on a String and another value causes the other
value to be attached to the String, creating a longer String. This
is called concatenation.
➢ Remember, the precedence of the + operator is below * / % .
Example: "hello" + 42 evaluates to "hello42"
Example: 1 + "abc" + 2 evaluates to "1abc2"
Example: "abc" + 1 + 2 evaluates to "abc12"
Example: 1 + 2 + "abc" evaluates to "3abc"
Example: "abc" + 9 * 3 evaluates to "abc27"
Example: "1" + 1 evaluates to "11"
40
Printing String expressions
➢ String expressions with + are useful so that we can print
more complicated messages that involve computed
values.
double grade = (95.1 + 71.9 + 82.6) / 3.0;
System.out.println("Your grade was " + grade);
int students;
students = 11 + 17 + 4 + 19 + 14;
System.out.println("There are " + students +
" students in the course.");
Arithmetic Operators and Operator
Precedence
➢ Five Arithmetic Operators
➢ + addition
➢ - subtraction
➢ * multiplication
➢ / division
➢ % mod (modulus) operator (integer operands only)
➢ Unary operator: operator that has one operand
➢ Binary operator: operator that has two
operands
41
Precedence of Operators
42
Expressions
➢ Integral expressions
➢ Floating-point or decimal expressions
➢ Mixed expressions
43
Integral Expressions
➢ All operands are integers
➢ Examples:
2 + 3 * 5
3 + x – y/7
x + 2 * (y – z) + 18
44
Floating-point Expressions
➢ All operands are floating-point numbers
➢ Examples:
12.8 * 17.5 – 34.50
x * 10.5 + y - 16.2
45
Mixed Expressions
➢ Operands of different types
➢ Examples:
2 + 3.5
6/4 + 3.9
➢ Integer operands yield an integer result;
floating-point numbers yield floating-point
results
➢ If both types of operands are present, the result
is a floating-point number
➢ Precedence rules are followed
46
Type Conversion (Casting)
➢ Used to avoid implicit type coercion
➢ Syntax
(dataTypeName) expression
➢ Expression evaluated first, then type
converted to dataTypeName
➢ Examples:
(int)(7.9 + 6.7) = 14
(int)(7.9) + (int)(6.7) = 13
47
The class String
➢ Used to manipulate strings
➢ String
➢ Sequence of zero or more characters
➢ Enclosed in double quotation marks
➢ Null or empty strings have no characters
➢ Numeric strings consist of integers or
decimal numbers
➢ length() returns the number of characters in
string
48
The Wrapper Classes
➢Class representations of primitive types
➢One for each primitive type
➢int → Integer
➢double → Double
➢boolean → Boolean
➢float → Float
➢char → Character
49
Parsing Numeric Strings
➢ String to int
Integer.parseInt(strExpression)
➢ String to float
Float.parseFloat(strExpression)
➢ String to double
Double.parseDouble(strExpression)
*strExpression: expression containing a numeric
string
50
Constants
➢ Cannot be changed during program execution
➢ Declared by using the reserved word final
➢ Initialized when it is declared
➢ Should be in all uppercase with words separated by _
according to Sun’s naming conventions
final int MIN_VALUE = 0;
final String MY_NAME = “Beth”;
51
Variables
➢ Content may change during program execution
➢ Must be declared before it can be used
➢ May not be automatically initialized
➢ Class level – initialized to default value
➢ If new value is assigned, old one is destroyed
➢ Value can only be changed by an assignment statement
or an input (read) statement
➢ Sun’s naming conventions:
➢ Mixed case with a lowercase first letter. Internal words start with
capital letters.
➢ Variable names should not start with underscore _ or dollar sign
➢ Should be short, yet meaningful
➢ Examples: accountBalance, firstName, menuChoice.
52
Assignment Statements
➢ Use “=“
➢ Operands must be compatible
➢String s = “s”; // ok
➢char c = “s”; // Not ok
➢ Left hand operand must be large enough of a
type to contain the result of the right hand
operand.
➢int x = 5 + 3; // ok
➢double d = 5 + 3; // ok
➢int n = 8.0 + 5; // Not ok
➢float f = 8.0 + 5; // Not ok… why not?
53
Increment and Decrement
Operators
➢ ++
➢ Increments the value of its operand by 1
➢ x++ is equivalent to x = x + 1
➢ --
➢ Decrements the value of its operand by 1
➢ x-- is equivalent to x = x - 1
➢ Syntax
➢ Pre-increment: ++variable
➢ Post-increment: variable++
➢ Pre-decrement: --variable
➢ Post-decrement: variable--
54
More on Assignment
Statements
➢ variable = variable * (expression);
is equivalent to
➢ variable *= expression;
Similarly,
➢ variable = variable + (expression);
is equivalent to:
➢ variable += expression;
55
Input
➢ Standard input stream object: System.in
➢ Input numeric data to program
➢ Separate by blanks, lines, or tabs
➢ To read a line of characters:
1. Create an input stream object of the class
BufferedReader
2. Use the method readLine()
56
Output
➢ Standard output object: System.out
➢ Methods
➢ print
➢ println
➢ flush
➢ Syntax
System.out.print(stringExp);
System.out.println(stringExp);
System.out.flush();
57
Object and Reference Variables
➢ Primitive variables: directly store data into their
memory space
➢ Reference variables: store the address of the object
containing the data
58
Reference Types
➢Reference types include class and
interface types.
➢Runtime type - every object belongs to a
class
➢Class mentioned in the creation statement
that produced the object
➢The class whose Class object was used using
reflection to create an instance of that class
➢Or the String class for objects created using
the + operator
59
Reference Types (cont’d)
➢Compile-time type
➢The class or interface used when the variable
was declared (Person p;)
➢Limits the possible run-time types.
• p can now only be assigned to an instance of a
class compatible with Person
– A class that inherits from Person
– A class that implements the interface Person
– An instance of the Person class
– The null literal
60
Reference Types (cont’d)
➢The declaration creates the reference, but
does not create an instance of the class.
➢String s does not reserve the memory to hold
the String to which s will refer.
➢Can have multiple references to the same
object.
➢Object o1 = new Object(); Object o2 = o1;
➢Garbage collection occurs only when there
are no more references to the created object.
61
Object and Reference Variables
➢Declare a reference variable of a class
type
➢Use the operator new to:
➢ Allocate memory space for data
➢ Instantiate an object of that class type
➢Store the address of the object in a
reference variable
62
The Operator new
➢ Statement:
Integer num;
num = new Integer(78);
➢ Result:
63
Garbage Collection
➢Change value of num:
num = new Integer(50);
➢Old memory space reclaimed
64
Control Structures
➢Three methods of processing a program
➢In sequence
➢Branching or Selection
➢Looping
➢Branch: Altering the flow of program
execution by making a selection or choice
➢Loop: Altering the flow of program
execution by repetition of statement(s)
65
Flow of Execution
66
Relational Operators
➢Relational Operator
➢Allows you to make comparisons in a program
➢Binary operator
➢Condition is represented by a logical
expression in Java
➢Logical expression: expression that has a
value of either true or false
67
Relational Operators in Java
68
Relational Operators and
Primitive Data Types
➢Can be used with integral and floating-
point data types
➢Can be used with the char data type
➢Unicode Collating Sequence
69
Relational Operators and the
Unicode Collating Sequence
70
Comparing Strings
➢class String
➢Method compareTo
➢Method equals
➢Given string str1 and str2
integer < 0 if str1 < str2
Str1.compareTo(str2) = { 0 if str1 = str2
integer > 0 if str1 > str2
71
Logical (Boolean) Operators
The ! (not) Operator
72
AND and OR Operators
73
Short-Circuit Evaluation
➢Definition: a process in which the
computer evaluates a logical expression
from left to right and stops as soon as the
value of the expression is known
74
Selection
➢One-Way Selection
➢Two-Way Selection
➢Compound (Block of) Statements
➢Multiple Selections (Nested if)
➢Conditional Operator
➢switch Structures
75
One-Way Selection
➢ Syntax: if(expression)
statement
➢ Expression referred to as decision maker
➢ Statement referred to as action statement
76
Two-Way Selection
➢Syntax: if(expression)
statement1
else
statement2
➢else statement must be paired with an if
77
Two-Way Selection
78
Compound (Block of)
Statements
➢ Syntax
{
statement1
statement2
.
.
.
statementn
}
79
Multiple Selection: Nested if
➢ Syntax
if(expression1)
statement1
else
if(expression2)
statement2
else
statement3
➢ Else associated with
most recent
incomplete if
➢ Multiple if statements
can be used in place
of if…else statements
➢ May take longer to
evaluate
80
Conditional (? :) Operator
➢Ternary operator
➢Syntax
expression1 ? expression2 : expression3
➢If expression1 = true, then the result of the
condition is expression 2
otherwise, the result of the condition is
expression3
81
switch Structures
➢ Expression also
known as selector
➢ Expression can be
identifier
➢ Value can only be
integral
switch(expression)
{
case value1: statements1
break;
case value2: statements2
break;
...
case valuen: statementsn
break;
default: statements
}
82
switch Statement
83
Why Is Repetition Needed?
➢There are many situations in which the
same statements need to be executed
several times
➢Example
➢Formulas used to find average grades for
students in a class
84
The while Looping (Repetition)
Structure
➢ Syntax
while(expression)
statement
➢ Expression is always true
in an infinite loop
➢ Statements must change
value of expression to
false
85
Counter-Controlled while Loop
➢ Used when exact number of data or entry pieces
is known
➢ Syntax:
int N = //value input by user or specified in
program;
int counter = 0;
while(counter < N){
statement(s);
counter++;
}
86
Sentinel-Controlled while Loop
➢ Used when exact number of entry pieces is
unknown but last entry (special/sentinel value) is
known)
➢ Syntax:
input first data item into variable;
while(variable != sentinel){
statement(s);
input a data item into variable;
}
87
Flag-Controlled while Loop
➢ Boolean value used to control loop
➢ Syntax:
boolean found = false;
while(!found){
statement(s);
if(expression)
found = true;
}
88
EOF(End of File)-Controlled
while Loop
➢ Used when input is from files
➢ Sentinel value is not always appropriate
➢ Syntax:
input the first data item;
while(not_end_of_input_file){
statement(s);
input a data item;
}
➢ read method with value –1 can be used as expression in
while
89
The for Looping (Repetition)
Structure
➢ Specialized form of while loop
➢ Simplifies the writing of count-controlled loops
➢ Syntax
for(initial statement; loop condition; update
statement)
{
statement(s);
}
90
The for Looping (Repetition)
Structure
➢ Execution:
➢ initial statement
executes
➢ loop condition
evaluated
➢ If loop condition
evaluates to true,
execute for loop
statement and
execute update
statement
➢ Repeat until loop
condition is false
91
The for Looping (Repetition)
Structure
➢ Does not execute if initial condition is false
➢ Update expression changes value of loop control
variable, eventually making it false
➢ If loop condition is always true, result is an infinite
loop
➢ Infinite loop can be specified by omitting all three
control statements
➢ If loop condition is omitted, it is assumed to be true
➢ for statement ending in semicolon is empty; does
not effect program
92
The do…while Loop (Repetition)
Structure
➢ Syntax
do{
statement(s);
}
while(expression);
➢ Statements executed first, then expression
evaluated
➢ Statement(s) executed at least once then
continued if expression is true
93
do…while Loop (Post-test Loop)
94
break Statements
➢Used to exit early from a loop
➢Used to skip remainder of switch structure
➢Can be placed within if statement of a loop
➢If condition is met, loop exited immediately
95
continue Statements
➢ Used in while, for, and do...while structures
➢ When executed in a loop, the remaining
statements in the loop are skipped; proceeds
with the next iteration of the loop
➢ When executed in a while/do…while structure,
expression evaluated immediately after continue
statement
➢ In a for structure, the update statement is
executed after the continue statement; then the
loop condition executes
96
Nested Control Structures
➢Provides new power, subtlety, and
complexity
➢if, if…else, and switch structures can be
placed within while loops
➢for loops can be found within other for
loops
97
Nested Control Structures
(Example)
➢ for(int i = 1; i <= 5; i++){
for(int j = 1; j <= i; j++)
System.out.print(“*”);
System.out.println();
}
➢ Output:
*
**
***
****
*****
98
Programming example: do-while
and nested loops
➢Write a program that will prompt the user
for the number of times to say Hello.
➢ Read in the user’s input and output “Hello” n
times (where n is the number of time specified
by the user).
➢At the end of the program, ask the user if
he/she would like to run the program
again…
➢ If yes, prompt the user again for the number of
times
➢ If no, exit. 99
Array
➢Definition: structured data type with a
fixed number of components
➢Every component is of the same type
➢Components are accessed using their
relative positions in the array
100
One-Dimensional Arrays
➢ Syntax to instantiate an array:
➢dataType[ ] arrayName;
arrayName = new dataType[intExp]
➢dataType[ ] arrayName = new dataType[intExp]
➢dataType[ ] arrayName1, arrayName2;
➢ Syntax to access an array component:
➢arrayName[indexExp]
• intExp = number of components in array >= 0
• 0 <= indexExp <= intExp
101
Array num:
int[ ] num = new int [5];
102
Array list
103
Arrays
➢ Not necessary to know array size at
compile time
➢ arrayName.length returns the number of
components in array
➢ Loops used to step through elements in
array and perform operations
➢ Elements initialized to default value
➢ 0 for integrals
➢ 0.0 for floating point
➢ null for object references 104
Arrays
➢ Some operations on arrays:
➢ Initialize
➢ Input data
➢ Output stored data
➢ Find largest/smallest/sum/average of
elements
105
How To Specify Array Size During
Program Execution
int arraySize; //Line 1
System.out.print("Enter the size of the array: "); //Line 2
arraySize = Integer.parseInt(keyboard.readLine()); //Line 3
System.out.println(); //Line 4
int[] list = new int[arraySize]; //Line 5
106
Instance Variable length
➢Contains size of array
➢public member
➢Is final
➢Can be directly accessed in program using
array name and dot operator
➢Example
➢If: int[] list = {10, 20, 30, 40, 50, 60};
➢Then: list.length is 6
107
Code to Initialize Array to
Specific Value (10.00)
for(index = 0; index < sale.length; index++)
sale[index] = 10.00;
108
Code to Read Data into Array
for(index = 0; index < sale.length; index++)
sale[index] = Integer.parseInt(keyboard.readLine());
109
Code to Print Array
for(index = 0; index < sale.length; index++)
System.out.print(sale[index] + " ");
110
Code to Find Sum and Average
of Array
sum = 0;
for(index = 0; index < sale.length; index++)
sum = sum + sale[index];
if(sale.length != 0)
average = sum / sale.length;
else
average = 0.0;
111
Determining Largest Element in
Array
maxIndex = 0;
for(index = 1; index < sale.length; index++)
if(sale[maxIndex] < sale[index])
maxIndex = index;
largestSale = sale[maxIndex];
112
Array Index Out of Bounds
➢Array in bounds if:
0 <= index <= arraySize – 1
➢If index < 0 or index > arraySize:
ArrayIndexOutOfBoundsException
exception is thrown
➢Base address: memory location of first
component in array
113
Array variables as reference
variables
Changes to elements in listA or listB will change both, as both
references point to the same array
114
Copying an Array
115
Arrays of Objects
➢Can use arrays to manipulate objects
➢Example: create array named array1 with
N objects of type T
T [ ] array1 = new T[N]
➢Can instantiate array1 as follows:
for(int j=0; j <array1.length; j++)
array1[j] = new T();
116
Two-Dimensional Arrays
➢ Data is sometimes in table form (difficult to
represent using one-dimensional array)
➢ To declare/instantiate two-dimensional array:
dataType[ ][ ] arrayName = new
dataType[intExp1][intExp2];
➢ To access a component of a 2-dimensional
array:
arrayName[indexExp1][indexExp2];
• intExp1, intExp2 >= 0
• indexExp1 = row position
• indexExp2 = column position
117
Two-Dimensional Arrays
➢Can specify different number of columns
for each row (ragged arrays)
➢Three ways to process 2-D arrays
➢Entire array
➢Particular row of array (row processing)
➢Particular column of array (column
processing)
➢Processing algorithms similar to
processing algorithms of one-dimensional
arrays
118
double[ ][ ]sales = new double[10][5];
Two-Dimensional Arrays
119
Accessing Two-Dimensional
Array Components
120
Two-Dimensional Arrays:
Special Cases
121
Multidimensional Arrays
➢ Can define three-dimensional arrays or n-
dimensional array (n can be any number)
➢ Syntax to declare and instantiate array:
dataType[ ][ ]…[ ] arrayName = new
dataType[intExp1][intExp2]…[intExpn];
➢ Syntax to access component:
arrayName[indexExp1][indexExp2]…[indexExpn]
• intExp1, intExp2, ..., intExpn = positive integers
• indexExp1,indexExp2, ..., indexExpn = non-
negative integers
122
Loops to Process
Multidimensional Arrays
double[][][] carDealers = new double [10][5][7];
for(i = 0; i < 10; i++)
for(j = 0; j < 5; j++)
for(k = 0; k < 7; k++)
carDealers[i][j][k] = 10.00;
123
Returning to Methods…
➢Let’s now switch gears and look at how
users can create their own methods.
124
Syntax: Value-Returning
Method
modifier(s) returnType methodName(formal parameter list)
{
statements
}
125
Packages, Classes and
Methods
126
Terminology
➢ Package: collection of related classes
➢ Class: consists of methods. All Java
code must reside in a class.
➢ Method: designed to accomplish a
specific task
127
Packages
➢ Files with a .class extension are aggregated into
packages, or collections of related classes.
➢ Packages enforce modularity.
➢ Any class can belong to only 1 package.
➢ Packages may contain subpackages to arbitrary
levels.
➢ The primary package is java and its main
subpackage is lang.
128
Packages (cont’d)
➢ All classes in the java.lang package are
automatically imported into every program.
➢ Programmers typically import classes from
packages to avoid using fully qualified names.
➢If a program imports the class java.util.Date, the
programmer then can use Date instead of the fully
qualified name.
➢ In UML, they look like:
129
Packages (cont’d)
➢java and the javax packages are
standard packages.
➢The javax packages are extensions to the
earlier java packages.
➢Support string and text processing, numeric
computation, networking, graphics, security,
and so on.
130
Packages (cont’d)
➢Packages can be used to resolve name
conflicts.
➢The java.awt package has a List class
and the java.util package has a List
interface. The fully qualified names
java.awt.List
java.util.List
disambiguate.
131
Packages (cont’d)
➢ Every class belongs to a package.
➢ The package to which a class belongs can be
explicitly declared with the package statement
in a source file.
➢ A class belongs to a default unnamed package if
a containing package is not explicitly declared.
➢ Sun’s naming convention dictates that package
names are in all lowercase letters.
132
package statement
➢The package statement, if present, occurs
as the first uncommented line in a source
file.
➢The source file Hi.java could begin
package hiPkg; // Note: 1st line
import java.util.Date;
class Hi {
...
}
133
Summary of packages
➢ Convenient way to group related classes into
software libraries.
➢Example: java.math
➢ For small programs and projects, default
packages are typically sufficient.
➢Always use packages if you ever expect to reuse
code again.
➢ Explicitly named packages are especially useful
for large projects with many programmers.
134
What is an object?
➢ A representation of almost anything you
need to model in a program.
➢ The basic unit of object orientation.
➢ Has attributes, behavior and identity.
➢ Members of a class.
➢ Attributes and behaviors are defined by
the class definition.
135
What is a class? (part 1)
➢ A description or definition of a set of
objects, that share common features.
➢ A class has attributes, behaviors,
methods, and state.
ClassName
-privateAttr : type
#protectedAttr : type
+publicAttr : type
+methodA(args) : returnType
136
What is a class? (part 2)
➢ Attributes – Hold state information of an object.
These should not be directly accessible to the
outside world.
➢ Behavior – Activity of an object that is visible to
the outside world.
➢ Method – Member function defined as part of
the declaration of a class.
➢ State – Reflects the current values of all
attributes of a given object and is the result of
the behavior of an object over time.
137
Properties of Java Classes
1. Class is not a real-world entity. It is just a template or
blueprint or prototype from which objects are created.
2. Class does not occupy memory.
3. Class is a group of variables of different data types and
a group of methods.
4. A Class in Java can contain:
1. Data member
2. Method
3. Constructor
4. Nested Class
5. Interface
138
Java Objects
➢ An object in Java is a basic unit of Object-Oriented
Programming and represents real-life entities.
➢ Objects are the instances of a class that are created to
use the attributes and methods of a class.
➢ A typical Java program creates many objects, which as
you know, interact by invoking methods. An object
consists of :
1. State: It is represented by attributes of an object. It also
reflects the properties of an object.
2. Behavior: It is represented by the methods of an object.
It also reflects the response of an object with other
objects.
3. Identity: It gives a unique name to an object and
enables one object to interact with other objects.
139
Java Methods
➢The method in Java or Methods of Java is
a collection of statements that perform
some specific task and return the result to
the caller.
➢A Java method can perform some specific
task without returning anything.
➢Java Methods allow us to reuse the code
without retyping the code.
➢In Java, every method must be part of
some class 140
Syntax of Method
141
➢Advantage of Method
• Code Reusability
• Code Optimization
142
Method Declaration
➢ In general, method declarations have 6
components:
➢ 1. Modifier: It defines the access type of the
method i.e. from where it can be accessed in your
application. In Java, there 4 types of access
specifiers. (4 Ps)
➢ 2. The return type: The data type of the value
returned by the method or void if does not return
a value. It is Mandatory in syntax.
➢ 3. Method Name: the rules for field names apply
to method names as well, but the convention is a
little different. It is Mandatory in syntax. 143
Method Declaration(1)
➢ 4. Parameter list: Comma-separated list of the input
parameters is defined, preceded by their data type,
within the enclosed parenthesis. If there are no
parameters, you must use empty parentheses (). It
is Optional in syntax.
➢ 5. Exception list: The exceptions you expect by the
method can throw, you can specify these exception(s). It
is Optional in syntax.
➢ 6. Method body: it is enclosed between braces. The
code you need to be executed to perform your intended
operations. It is Optional in syntax.
144
Example
145
Types of Methods in Java
There are two types of methods in Java:
1. Predefined Method
➢ In Java, predefined methods are the method that is
already defined in the Java class libraries is known as
predefined methods.
➢ It is also known as the standard library method or built-
in method. We can directly use these methods just by
calling them in the program at any point.
2. User-defined Method
➢ The method written by the user or programmer is
known as a user-defined method. These methods are
modified according to the requirement.
146
import Statement
➢ Used to import the components of a package
into a program
➢ Reserved word
➢ import java.io.*;
imports the (components of the) package java.io into
the program
➢ Primitive data types and the class String
➢ Part of the Java language
➢ Don’t need to be imported
147
Do I have to import ?
➢ Java programs often include import
statements such as
import java.util.Date;
for convenience.
➢ If a program requires the standard Date class,
for instance, then the fully qualified name
java.util.Date must be used if the import is
omitted.
➢ Subpackages must be explicitly imported.
148
First Program Revisited
package hiPkg; // rest of line is comment
/* comment that spans multiple
lines */
import java.util.Date;
public class Hi {
public static void main(String [] args) {
System.out.print(“Hi!”);
}
}
149
Running the program
➢As stated before, the entry point of the
program is the main method
➢If the signature of the main method is not
“public static void main(String [ ] args)”, then it
may compile, but it will not run
➢To compile
➢javac Hi.java
➢To run
➢java Hi
150
Using Predefined Classes and
Methods in a Program
➢To use a method you must know:
➢ Name of class containing method (Math)
➢ Name of package containing class
(java.lang)
➢ Name of method (pow), its parameters (int
a, int b), and function (a^b)
151
class Math (Package: java.lang)
152
class Math (Package: java.lang)
153
Using Predefined Classes and
Methods in a Program
➢Example method call:
Math.pow(2,3); //calls pow method in class Math
➢(Dot) . Operator: used to access the method
in the class
154
The Class String Revisited
➢String variables are reference variables
➢Given String name;
➢ Equivalent Statements:
name = new String("Lisa Johnson");
name = “Lisa Johnson”;
155
The Class String Revisited
➢The String object is an instance of class
string
➢The value “Lisa Johnson” is instantiated
➢The address of the value is stored in name
➢The new operator is unnecessary when
instantiating Java strings
➢String methods are called using the dot
operator
156
Commonly Used String
Methods
➢String(String str)
➢char charAt(int index)
➢int indexOf(char ch)
➢int indexOf(String str, int pos)
➢int compareTo(String str)
157
Commonly Used String
Methods
➢String concat(String str)
➢boolean equals(String str)
➢int length()
➢String replace(char ToBeReplaced, char
ReplacedWith)
➢String toLowerCase()
➢String toUpperCase()
158
User-Defined Methods
➢ Value-returning methods
➢Used in expressions
➢Calculate and return a value
➢Can save value for later calculation or print value
➢ Modifiers: public, private, protected, static,
abstract, final
➢ returnType: type of value that the method
calculates and returns (using return statement)
➢ methodName: Java identifier, name of method
159
Syntax
Syntax: Formal Parameter List
The syntax of the formal parameter list is:
dataType identifier, dataType identifier,...
Method Call
The syntax to call a value-returning method
is:
methodName(actual parameter list)
160
Syntax
Syntax: return Statement
The return statement has the following
syntax:
return expr;
Syntax: Actual Parameter List
The syntax of the actual parameter list is:
expression or variable, expression or variable, ...
161
Equivalent Method Definitions
public static double larger(double x, double y)
{
double max;
if(x >= y)
max = x;
else
max = y;
return max;
}
162
Equivalent Method Definitions
public static double larger(double x, double y)
{
if(x >= y)
return x;
else
return y;
}
163
Flow of Execution
➢ Execution always begins with the first statement
in the method main
➢ User-defined methods execute only when called
➢ Call to method transfers control from caller to
called method
➢ In method call statement, specify only actual
parameters, not data type or method type
➢ Control goes back to caller when method exits
164
Programming Example: Largest
Number
➢ Input: Set of 10 numbers
➢ Output: Largest of 10 numbers
➢ Solution:
➢Get numbers one at a time
➢Method largest number: returns the larger of 2
numbers
➢For loop: calls method largest number on each
number received and compares to current largest
number
165
Void Methods
➢Similar in structure to value-returning
methods
➢No method type
➢Call to method is always stand-alone
statement
➢Can use return statement to exit method
early
166
Void Methods: Syntax
Method Definition
The general form (syntax) of a void method without parameters is as
follows:
modifier(s) void methodName()
{
statements
}
Method Call (Within the Class)
The method call has the following syntax:
methodName();
167
Void Methods with Parameters:
Syntax
Method Definition
The definition of a void method with parameters has the
following syntax:
modifier(s) void methodName(formal parameter list)
{
statements
}
Formal Parameter List
The formal parameter list has the following syntax:
dataType variable, dataType variable, ...
168
Void Methods with Parameters:
Syntax
➢Method Call
➢The method call has the following syntax:
methodName(actual parameter list);
➢Actual Parameter List
➢The actual parameter list has the following
syntax:
expression or variable, expression or variable, ...
169
Primitive Data Type Variables
as Parameters
➢A formal parameter receives a copy of its
corresponding actual parameter
➢If a formal parameter is a variable of a
primitive data type
➢Value of actual parameter is directly stored
➢Cannot pass information outside the method
➢Provides only a one-way link between actual
parameters and formal parameters
170
Reference Variables as
Parameters
➢If a formal parameter is a reference
variable
➢Copies value of corresponding actual
parameter
➢Value of actual parameter is address of object
where actual data is stored
➢Both formal and actual parameter refer to
same object
171
Uses of Reference Variables as
Parameters
➢Can return more than one value from a
method
➢Can change the value of the actual object
➢When passing address, would save
memory space and time, relative to
copying large amount of data
172
Reference Variables as
Parameters: type String
173
Method Overloading
➢ Method overloading: more than one method can
have the same name
➢ Overloading Rules
➢Every method must have a different number of
formal parameters
OR
➢If the number of formal parameters is the same,
then the data type of the formal parameter (in the
order listed), must differ in at least one position
➢Types of parameters determine which method
executes
174
Constructors and methods
➢All Java functions are encapsulated as
either constructors or methods.
➢A constructor has the same name as its
encapsulating class and no return type or
void in place of a return type. For
instance, a Date constructor would have
the name Date.
175
Constructors and methods
➢All Java functions are encapsulated as
either constructors or methods.
➢A constructor has the same name as its
encapsulating class and no return type or
void in place of a return type. For
instance, a Date constructor would have
the name Date.
176
Constructors
➢Constructors are used with the new
operator to construct instances of a class.
The statement
Date today = new Date();
illustrates.
➢Constructors are typically overloaded; that
is, a class typically has several
constructors.
177
Constructors vs. Methods
➢A method does not have the same name
as its encapsulating class and has either a
return type or void in place of a return
type.
➢Methods define the operations appropriate
to a class and its instances, and can be
called many times for a single instance
➢Constructors are only called when the object
is created.
178
Constructors vs. Methods
➢A constructor cannot be static, but a
method can be static.
➢Constructors and methods can be
parameterized. The parameter names and
data types must be provided.
➢Methods, like constructors, can be
overloaded but must be distinguished by
their names and/or parameter types.
179

More Related Content

Similar to java basics - keywords, statements data types and arrays

Similar to java basics - keywords, statements data types and arrays (20)

Learning C programming - from lynxbee.com
Learning C programming - from lynxbee.comLearning C programming - from lynxbee.com
Learning C programming - from lynxbee.com
 
pythonQuick.pdf
pythonQuick.pdfpythonQuick.pdf
pythonQuick.pdf
 
python notes.pdf
python notes.pdfpython notes.pdf
python notes.pdf
 
python 34💭.pdf
python 34💭.pdfpython 34💭.pdf
python 34💭.pdf
 
c-programming
c-programmingc-programming
c-programming
 
VB PPT by ADI PART3.pdf
VB PPT by ADI PART3.pdfVB PPT by ADI PART3.pdf
VB PPT by ADI PART3.pdf
 
VB PPT by ADI PART3.pdf
VB PPT by ADI PART3.pdfVB PPT by ADI PART3.pdf
VB PPT by ADI PART3.pdf
 
Java Tutorial
Java Tutorial Java Tutorial
Java Tutorial
 
Introduction to c
Introduction to cIntroduction to c
Introduction to c
 
My programming final proj. (1)
My programming final proj. (1)My programming final proj. (1)
My programming final proj. (1)
 
Types of c operators ppt
Types of c operators pptTypes of c operators ppt
Types of c operators ppt
 
Python programing
Python programingPython programing
Python programing
 
Lamborghini Veneno Allegheri #2004@f**ck
Lamborghini Veneno Allegheri #2004@f**ckLamborghini Veneno Allegheri #2004@f**ck
Lamborghini Veneno Allegheri #2004@f**ck
 
Java: Primitive Data Types
Java: Primitive Data TypesJava: Primitive Data Types
Java: Primitive Data Types
 
Core java
Core javaCore java
Core java
 
Lecture1.pdf
Lecture1.pdfLecture1.pdf
Lecture1.pdf
 
Perl slid
Perl slidPerl slid
Perl slid
 
Java tut1
Java tut1Java tut1
Java tut1
 
Tutorial java
Tutorial javaTutorial java
Tutorial java
 
Java Tut1
Java Tut1Java Tut1
Java Tut1
 

Recently uploaded

Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 

Recently uploaded (20)

Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 

java basics - keywords, statements data types and arrays

  • 1. CSE1007 Java Basics Keywords, Variables, Statements, Data Types Arrays 1
  • 2. Keywords ➢ abstract ➢ default ➢ if ➢ private ➢ this ➢ boolean ➢ do ➢ implements ➢ protected ➢ throw ➢ extends ➢ null** ➢ break ➢ double ➢ import ➢ public ➢ throws ➢ byte ➢ else ➢ instanceof ➢ return ➢ transient ➢ case ➢ int ➢ false* ➢ short ➢ try ➢ catch ➢ final ➢ interface ➢ static ➢ void ➢ char ➢ finally ➢ long ➢ strictfp ➢ volatile ➢ true* ➢ class ➢ float ➢ native ➢ super ➢ while ➢ const ➢ for ➢ new ➢ switch ➢ continue ➢ goto ➢ package ➢ synchronized *boolean literals ** null literal 2
  • 3. Identifiers ➢ Names of things ➢ Cannot be the same as any keyword ➢ Are case-sensitive ➢ Consist of and must begin with: ➢ Letters ➢ Digits ➢ The underscore character (_) ➢ The dollar sign ($) 3
  • 4. Data Types ➢ Data type: set of values together with a set of operations 4
  • 6. Primitive Data Types ➢ Floating-Point Data Types ➢ float: precision = 6 or 7 ➢ double: precision = 15 ➢ Boolean ➢ boolean • true • false 6
  • 8. Size for Java's Primitive Types 8
  • 9. Values and Memory Allocation for Integral Data Types 9
  • 10. Literals ➢ Null literal ➢null ➢ boolean ➢true false ➢ int ➢Default for integrals ➢2 0372 0xDadaCafe 1996 0x00FF00FF ➢ long ➢Must end with “L” or “l” ➢0l 0777L 0x100000000L 2147483648L 0xC0B0L 10
  • 11. Floating-Point Literals ➢float ➢Must end with “f” or “F” ➢1e1f 2.f .3f 0f 3.14F 6.022137e+23f ➢double ➢Default for floating-point types ➢1e1 2. .3 0.0 3.14 1e-9d 1e137 11
  • 12. Character Literals ➢char ➢Must be in single quotes ➢Escape character is • 't' for tab, 'n' for newline, '' for '', '' for ''‘, etc. • If followed by numbers, represents the unicode ascii value of that character ➢Examples: • 'a' '%' 't' '' ''' 'u03a9' 'uFFFF' '177' ➢Cannot have more than one character • 'abc‘ is not a valid character 12
  • 14. String Literals ➢ Anything in double quotes ➢ Examples: ➢"" // the empty string ➢""" // a string containing " alone ➢"This is a string" // a string containing 16 characters ➢"This is a " + // a string-valued constant expression, "two-line string" // formed from two string literals ➢ NOT Strings: ➢‘abc’ 14
  • 15. 15 Variables “Once a programmer has understood the use of variables, he has understood the essence of programming”
  • 16. 16 Programs that examine data ➢ We have already seen that we can print text on the screen using println and String literals: System.out.println("Hello, world!"); ➢ Now we will learn how to print and manipulate other kinds of data, such as numbers: System.out.println(42); System.out.println(3 + 5 * 7); System.out.println(12.5 / 8.0); ➢ data: Numbers, characters, or other values that are processed by a human or computer. ➢ Useful computer programs manipulate data.
  • 17. 17 Expressions ➢ expression: A data value, or a set of operations that compute a data value. ➢ Example: 1 + 4 * 3 ➢ The simplest expression is a literal value. ➢ A more complex expression can have operators and/or parentheses. • The values that an operator applies to are called operands. ➢ 5 common arithmetic operators we will use: + (addition) - (subtraction or negation) * (multiplication) / (division) % (modulus, a.k.a. remainder)
  • 18. 18 Evaluating expressions ➢ When your Java program executes and encounters a line with an expression, the expression is evaluated (its value is computed). ➢ The expression 3 * 4 is evaluated to obtain 12. ➢ System.out.println(3 * 4) prints 12, not 3 * 4. (How could we print 3 * 4 on the screen?) ➢ When an expression contains more than one operator of the same kind, it is evaluated left-to-right. ➢ Example: 1 + 2 + 3 is (1 + 2) + 3 which is 6 ➢ Example: 1 - 2 - 3 is (1 - 2) - 3 which is -4 (not the same as 1 - (2 - 3) which is 2)
  • 19. 19 Integer division with / ➢ 14 / 4 evaluates to 3, not 3.5. ➢ Back to division in 4th grade ➢ In Java, when we divide integers, the result is also an integer: the integer quotient. ➢ The integer quotient of dividing 14 by 4 is 3. The integer remainder of dividing 14 by 4 is 2. ➢ Imagine that you were doing long division: 3 52 4 ) 14 27 ) 1425 12 135 2 75 54 21 ➢ Examples: • 35 / 5 evaluates to 7 • 84 / 10 evaluates to 8 • 156 / 100 evaluates to 1 ➢ Dividing by 0 causes your program to crash. ➢ Try it!
  • 20. 20 Integer remainder with % ➢ The % operator computes the remainder from a division of integers. ➢ Example: 14 % 4 is 2 ➢ Example: 218 % 5 is 3 3 43 4 ) 14 5 ) 218 12 20 2 18 15 3 ➢ What do the following expressions evaluate to? ➢ 45 % 6 ➢ 2 % 2 ➢ 8 % 20 ➢ 11 % 0
  • 21. 21 Applications of % operator ➢ What expression obtains the last digit (units place) of a number? ➢ Example: From 230857, obtain the 7. ➢ How could we obtain the last 4 digits of a Social Security Number? ➢ Example: From 658236489, obtain 6489. ➢ What expression obtains the second-to-last digit (tens place) of a number? ➢ Example: From 7342, obtain the 4. ➢ Can the % operator help us determine whether a number is odd? Can it help us determine whether a number is divisible by, say, 27?
  • 22. 22 Operator precedence ➢ How does Java evaluate 1 + 3 * 4? Is it (1 + 3) * 4, or is it 1 + (3 * 4)? ➢ In a complex expression with several operators, Java uses internal rules of precedence to decide the order in which to apply the operators. ➢ precedence: Order in which operations are computed in an expression. ➢ Multiplicative operators have a higher level of precedence than additive operators, so they are evaluated first. • * / % before + - ➢ In our example, * has higher precedence than +, just like on a scientific calculator, so 1 + 3 * 4 evaluates to 13. ➢ Parentheses can be used to override a precedence. (1 + 3) * 4 evaluates to 16.
  • 23. 23 Precedence examples ➢ 1 * 2 + 3 * 5 / 4 ➢ _/ | 2 + 3 * 5 / 4 ➢ _/ | 2 + 15 / 4 ➢ ___/ | 2 + 3 ➢ ________/ | 5 ◼ 1 + 2 / 3 * 5 - 4 ◼ _/ | 1 + 0 * 5 - 4 ◼ ___/ | 1 + 0 - 4 ◼ ______/ | 1 - 4 ◼ _________/ | -3
  • 24. 24 Precedence examples ➢ What do the following expressions evaluate to? 9 / 5 695 % 20 7 + 6 * 5 7 * 6 + 5 248 % 100 / 5 6 * 3 - 9 / 4 (5 - 7) * 4 6 + (18 % (17 - 12)) ➢ Which parentheses above are unnecessary (which do not change the order of evaluation?)
  • 25. 25 Real numbers ➢ The expressions we have seen so far used integers, but Java also can manipulate real numbers (numbers with a decimal point). ➢ Examples: 6.022 -15.9997 42.0 2.143e17 ➢ The operators we saw, + - * / % , as well as parentheses ( ) , all work for real numbers as well. ➢ The / operator produces a more precise answer when used on real numbers, rather than an integer quotient. • Example: 15.0 / 2.0 evaluates to 7.5 ➢ The % operator is not often used on real numbers. ➢ The same rules of precedence that apply to integers also apply to real numbers. ➢ ( ) before * / % before + -
  • 26. 26 Real number example ➢ 1.5 * 2.4 + 3.3 * 4.25 / 5.5 ➢ _/ | 3.6 + 3.3 * 4.25 / 5.5 ➢ _/ | 3.6 + 14.025 / 5.5 ➢ ___/ | 3.6 + 2.55 ➢ _____________/ | 6.15
  • 27. 27 Real number precision ➢ Strange things are afoot with real numbers: System.out.println( 11.0 – 10.91 ); ➢ The mathematically correct answer is 0.09 ➢ Instead, we get this: ➢ Unfortunately, the computer represents real numbers in an imprecise way internally, so some calculations with them are off by a very slight amount. ➢ We cannot do anything to change this. ➢ We will generally ignore this problem for this course and tolerate the precision errors, but later on we will learn some ways to produce a better output for examples like above. ➢ Example. Write 1/3 base 10 as a decimal in base 10 and then in base 3
  • 28. 28 Variables ➢ variable: A piece of your computer's memory that is given a name and type, and can store a value. ➢We use variables to store the results of a computation and use those results later in our program. ➢Unlike a cheap calculator, which may only have enough to store a few values, we can declare as many variables as we want, limited only by the memory are program is allowed to use.
  • 29. 29 Declaring variables ➢ variable declaration statement: A Java statement that creates a new variable of a given type. ➢ A variable is declared by writing a statement that says its type, and then its name. (The name is an identifier.) ➢ Declaration statement syntax: <type> <name> ; ➢ Example: int x; ➢ Example: double myGPA; ➢ It is also legal to declare multiple variables of the same type on one line: <type> <name>, <name>, ..., <name> ; ➢ Example: int a, b, c;
  • 30. 30 More on declaring variables ➢ Declaring a variable sets aside a chunk of memory in which you can store a value. int x; int y; ➢ A (crude) diagram of part of the computer's memory: +---+ +---+ x | | y | | (The memory has no value in it yet.) +---+ +---+ ➢ The compiler will fail if you try to declare a variable twice, or declare two variables with the same name. ➢ Illegal: int x; int x; // variable x already exists! ERROR ➢ When tracing code, draw boxes for variables!!
  • 31. 31 Assignment statements ➢ assignment statement: A Java statement that stores a value into a variable's memory location. ➢ Variables must be declared before they can be assigned a value. ➢ Assignment statement syntax: <name> = <value> ; ➢ Example: x = 3; ➢ Example: myGPA = 3.95; ➢ Another (crude) diagram of part of the computer's memory: +---+ +------+ x | 3 | myGPA | 3.95 | +---+ +------+ ➢ Technically, = is an operator like + or *, called the assignment operator, with very low precedence (it is carried out last).
  • 32. 32 More about assignment ➢ The <value> assigned to a variable can be a complex expression. The expression will be evaluated, and the variable will store the result. ➢ Example: x = (2 + 8) / 3 * 5; (The variable x now stores the value 15) ➢ A variable can be assigned a value more than once in the program. ➢ Example (Draw the boxes!!): int x; x = 3; System.out.println(x); // 3 x = 4 + 7; System.out.println(x); // 11
  • 33. 33 Using variables' values ➢ Once a variable has been assigned a value, it can be used in an expression, just like a literal value. int x; x = 3; System.out.println(x * 5 - 1); ➢ The above has output equivalent to: System.out.println(3 * 5 - 1); ➢ A variable that has not been assigned a value cannot be used in an expression or println statement. ➢ Illegal: int x; System.out.println(x); // ERROR -- x has no value
  • 34. 34 Assignment and algebra ➢ Though the assignment statement uses the = character, it is not like an algebraic equation. = means, "store the value on the right into the memory of the variable on the left“ in Java = is a verb, not a statement of fact ➢ Illegal: 3 = 1 + 2; (because 3 is not a piece of the computer's memory) 1 + 2 = x; // syntax error ➢ What do you suppose happens when a variable is used on both sides of an assignment statement? int x; x = 3; x = x + 2; // what happens?
  • 35. 35 Assignment and types ➢ A variable can only store a value of its own type. ➢ Illegal: x = 2.5; // ERROR: x can only store an int ➢ (Technically, the value does not need to be the same type as the variable--it can be any type that Java knows how to convert into the variable's type... see below.) ➢ An int value can be stored in a variable of type double. The value is converted into the equivalent real number. ➢ Legal: double myGPA = 4; +-----+ myGPA | 4.0 | +-----+
  • 36. 36 Assignment examples ➢ What is the output of the following Java code? int number; number = 2 + 3 * 4; System.out.println(number - 1); number = 16 % 6; System.out.println(2 * number); ➢ What is the output of the following Java code? double average; average = (9 + 8) / 2; System.out.println(average); average = (average * 2 + 10 + 8) / 4; System.out.println(average);
  • 37. 37 Declaration and initialization ➢ A variable can be declared and assigned an initial value in the same statement, to save lines in your program. ➢ Declaration and initialization statement syntax: <type> <name> = <value> ; ➢ Example: double myGPA = 3.95; ➢ Example: int x = (11 % 3) + 12; ➢ It is also legal to declare/initialize several at once: <type> <name> = <value> , <name> = <value> ; ➢ Example: int a = 2, b = 3, c = -4; ➢ Example: double grade = 3.5, delta = 0.1; same effect as: double myGPA; myGPA = 3.95; int x; x = (11 % 3) + 12;
  • 38. 38 Multiple declaration error ➢ The compiler will fail if you try to declare-and-initialize a variable twice. ➢ Illegal: int x = 3; System.out.println(x); int x = 5; // variable x already exists! ERROR System.out.println(x); ➢ This is the same as trying to declare x twice. ➢ What should the code have been if the programmer wanted to change the value of x to 5 ?
  • 39. 39 Strings in expressions ➢ A String can be used in an expression. ➢ But the only operator Strings understand is + , and its meaning is different. ➢ A + operator on a String and another value causes the other value to be attached to the String, creating a longer String. This is called concatenation. ➢ Remember, the precedence of the + operator is below * / % . Example: "hello" + 42 evaluates to "hello42" Example: 1 + "abc" + 2 evaluates to "1abc2" Example: "abc" + 1 + 2 evaluates to "abc12" Example: 1 + 2 + "abc" evaluates to "3abc" Example: "abc" + 9 * 3 evaluates to "abc27" Example: "1" + 1 evaluates to "11"
  • 40. 40 Printing String expressions ➢ String expressions with + are useful so that we can print more complicated messages that involve computed values. double grade = (95.1 + 71.9 + 82.6) / 3.0; System.out.println("Your grade was " + grade); int students; students = 11 + 17 + 4 + 19 + 14; System.out.println("There are " + students + " students in the course.");
  • 41. Arithmetic Operators and Operator Precedence ➢ Five Arithmetic Operators ➢ + addition ➢ - subtraction ➢ * multiplication ➢ / division ➢ % mod (modulus) operator (integer operands only) ➢ Unary operator: operator that has one operand ➢ Binary operator: operator that has two operands 41
  • 43. Expressions ➢ Integral expressions ➢ Floating-point or decimal expressions ➢ Mixed expressions 43
  • 44. Integral Expressions ➢ All operands are integers ➢ Examples: 2 + 3 * 5 3 + x – y/7 x + 2 * (y – z) + 18 44
  • 45. Floating-point Expressions ➢ All operands are floating-point numbers ➢ Examples: 12.8 * 17.5 – 34.50 x * 10.5 + y - 16.2 45
  • 46. Mixed Expressions ➢ Operands of different types ➢ Examples: 2 + 3.5 6/4 + 3.9 ➢ Integer operands yield an integer result; floating-point numbers yield floating-point results ➢ If both types of operands are present, the result is a floating-point number ➢ Precedence rules are followed 46
  • 47. Type Conversion (Casting) ➢ Used to avoid implicit type coercion ➢ Syntax (dataTypeName) expression ➢ Expression evaluated first, then type converted to dataTypeName ➢ Examples: (int)(7.9 + 6.7) = 14 (int)(7.9) + (int)(6.7) = 13 47
  • 48. The class String ➢ Used to manipulate strings ➢ String ➢ Sequence of zero or more characters ➢ Enclosed in double quotation marks ➢ Null or empty strings have no characters ➢ Numeric strings consist of integers or decimal numbers ➢ length() returns the number of characters in string 48
  • 49. The Wrapper Classes ➢Class representations of primitive types ➢One for each primitive type ➢int → Integer ➢double → Double ➢boolean → Boolean ➢float → Float ➢char → Character 49
  • 50. Parsing Numeric Strings ➢ String to int Integer.parseInt(strExpression) ➢ String to float Float.parseFloat(strExpression) ➢ String to double Double.parseDouble(strExpression) *strExpression: expression containing a numeric string 50
  • 51. Constants ➢ Cannot be changed during program execution ➢ Declared by using the reserved word final ➢ Initialized when it is declared ➢ Should be in all uppercase with words separated by _ according to Sun’s naming conventions final int MIN_VALUE = 0; final String MY_NAME = “Beth”; 51
  • 52. Variables ➢ Content may change during program execution ➢ Must be declared before it can be used ➢ May not be automatically initialized ➢ Class level – initialized to default value ➢ If new value is assigned, old one is destroyed ➢ Value can only be changed by an assignment statement or an input (read) statement ➢ Sun’s naming conventions: ➢ Mixed case with a lowercase first letter. Internal words start with capital letters. ➢ Variable names should not start with underscore _ or dollar sign ➢ Should be short, yet meaningful ➢ Examples: accountBalance, firstName, menuChoice. 52
  • 53. Assignment Statements ➢ Use “=“ ➢ Operands must be compatible ➢String s = “s”; // ok ➢char c = “s”; // Not ok ➢ Left hand operand must be large enough of a type to contain the result of the right hand operand. ➢int x = 5 + 3; // ok ➢double d = 5 + 3; // ok ➢int n = 8.0 + 5; // Not ok ➢float f = 8.0 + 5; // Not ok… why not? 53
  • 54. Increment and Decrement Operators ➢ ++ ➢ Increments the value of its operand by 1 ➢ x++ is equivalent to x = x + 1 ➢ -- ➢ Decrements the value of its operand by 1 ➢ x-- is equivalent to x = x - 1 ➢ Syntax ➢ Pre-increment: ++variable ➢ Post-increment: variable++ ➢ Pre-decrement: --variable ➢ Post-decrement: variable-- 54
  • 55. More on Assignment Statements ➢ variable = variable * (expression); is equivalent to ➢ variable *= expression; Similarly, ➢ variable = variable + (expression); is equivalent to: ➢ variable += expression; 55
  • 56. Input ➢ Standard input stream object: System.in ➢ Input numeric data to program ➢ Separate by blanks, lines, or tabs ➢ To read a line of characters: 1. Create an input stream object of the class BufferedReader 2. Use the method readLine() 56
  • 57. Output ➢ Standard output object: System.out ➢ Methods ➢ print ➢ println ➢ flush ➢ Syntax System.out.print(stringExp); System.out.println(stringExp); System.out.flush(); 57
  • 58. Object and Reference Variables ➢ Primitive variables: directly store data into their memory space ➢ Reference variables: store the address of the object containing the data 58
  • 59. Reference Types ➢Reference types include class and interface types. ➢Runtime type - every object belongs to a class ➢Class mentioned in the creation statement that produced the object ➢The class whose Class object was used using reflection to create an instance of that class ➢Or the String class for objects created using the + operator 59
  • 60. Reference Types (cont’d) ➢Compile-time type ➢The class or interface used when the variable was declared (Person p;) ➢Limits the possible run-time types. • p can now only be assigned to an instance of a class compatible with Person – A class that inherits from Person – A class that implements the interface Person – An instance of the Person class – The null literal 60
  • 61. Reference Types (cont’d) ➢The declaration creates the reference, but does not create an instance of the class. ➢String s does not reserve the memory to hold the String to which s will refer. ➢Can have multiple references to the same object. ➢Object o1 = new Object(); Object o2 = o1; ➢Garbage collection occurs only when there are no more references to the created object. 61
  • 62. Object and Reference Variables ➢Declare a reference variable of a class type ➢Use the operator new to: ➢ Allocate memory space for data ➢ Instantiate an object of that class type ➢Store the address of the object in a reference variable 62
  • 63. The Operator new ➢ Statement: Integer num; num = new Integer(78); ➢ Result: 63
  • 64. Garbage Collection ➢Change value of num: num = new Integer(50); ➢Old memory space reclaimed 64
  • 65. Control Structures ➢Three methods of processing a program ➢In sequence ➢Branching or Selection ➢Looping ➢Branch: Altering the flow of program execution by making a selection or choice ➢Loop: Altering the flow of program execution by repetition of statement(s) 65
  • 67. Relational Operators ➢Relational Operator ➢Allows you to make comparisons in a program ➢Binary operator ➢Condition is represented by a logical expression in Java ➢Logical expression: expression that has a value of either true or false 67
  • 69. Relational Operators and Primitive Data Types ➢Can be used with integral and floating- point data types ➢Can be used with the char data type ➢Unicode Collating Sequence 69
  • 70. Relational Operators and the Unicode Collating Sequence 70
  • 71. Comparing Strings ➢class String ➢Method compareTo ➢Method equals ➢Given string str1 and str2 integer < 0 if str1 < str2 Str1.compareTo(str2) = { 0 if str1 = str2 integer > 0 if str1 > str2 71
  • 72. Logical (Boolean) Operators The ! (not) Operator 72
  • 73. AND and OR Operators 73
  • 74. Short-Circuit Evaluation ➢Definition: a process in which the computer evaluates a logical expression from left to right and stops as soon as the value of the expression is known 74
  • 75. Selection ➢One-Way Selection ➢Two-Way Selection ➢Compound (Block of) Statements ➢Multiple Selections (Nested if) ➢Conditional Operator ➢switch Structures 75
  • 76. One-Way Selection ➢ Syntax: if(expression) statement ➢ Expression referred to as decision maker ➢ Statement referred to as action statement 76
  • 79. Compound (Block of) Statements ➢ Syntax { statement1 statement2 . . . statementn } 79
  • 80. Multiple Selection: Nested if ➢ Syntax if(expression1) statement1 else if(expression2) statement2 else statement3 ➢ Else associated with most recent incomplete if ➢ Multiple if statements can be used in place of if…else statements ➢ May take longer to evaluate 80
  • 81. Conditional (? :) Operator ➢Ternary operator ➢Syntax expression1 ? expression2 : expression3 ➢If expression1 = true, then the result of the condition is expression 2 otherwise, the result of the condition is expression3 81
  • 82. switch Structures ➢ Expression also known as selector ➢ Expression can be identifier ➢ Value can only be integral switch(expression) { case value1: statements1 break; case value2: statements2 break; ... case valuen: statementsn break; default: statements } 82
  • 84. Why Is Repetition Needed? ➢There are many situations in which the same statements need to be executed several times ➢Example ➢Formulas used to find average grades for students in a class 84
  • 85. The while Looping (Repetition) Structure ➢ Syntax while(expression) statement ➢ Expression is always true in an infinite loop ➢ Statements must change value of expression to false 85
  • 86. Counter-Controlled while Loop ➢ Used when exact number of data or entry pieces is known ➢ Syntax: int N = //value input by user or specified in program; int counter = 0; while(counter < N){ statement(s); counter++; } 86
  • 87. Sentinel-Controlled while Loop ➢ Used when exact number of entry pieces is unknown but last entry (special/sentinel value) is known) ➢ Syntax: input first data item into variable; while(variable != sentinel){ statement(s); input a data item into variable; } 87
  • 88. Flag-Controlled while Loop ➢ Boolean value used to control loop ➢ Syntax: boolean found = false; while(!found){ statement(s); if(expression) found = true; } 88
  • 89. EOF(End of File)-Controlled while Loop ➢ Used when input is from files ➢ Sentinel value is not always appropriate ➢ Syntax: input the first data item; while(not_end_of_input_file){ statement(s); input a data item; } ➢ read method with value –1 can be used as expression in while 89
  • 90. The for Looping (Repetition) Structure ➢ Specialized form of while loop ➢ Simplifies the writing of count-controlled loops ➢ Syntax for(initial statement; loop condition; update statement) { statement(s); } 90
  • 91. The for Looping (Repetition) Structure ➢ Execution: ➢ initial statement executes ➢ loop condition evaluated ➢ If loop condition evaluates to true, execute for loop statement and execute update statement ➢ Repeat until loop condition is false 91
  • 92. The for Looping (Repetition) Structure ➢ Does not execute if initial condition is false ➢ Update expression changes value of loop control variable, eventually making it false ➢ If loop condition is always true, result is an infinite loop ➢ Infinite loop can be specified by omitting all three control statements ➢ If loop condition is omitted, it is assumed to be true ➢ for statement ending in semicolon is empty; does not effect program 92
  • 93. The do…while Loop (Repetition) Structure ➢ Syntax do{ statement(s); } while(expression); ➢ Statements executed first, then expression evaluated ➢ Statement(s) executed at least once then continued if expression is true 93
  • 95. break Statements ➢Used to exit early from a loop ➢Used to skip remainder of switch structure ➢Can be placed within if statement of a loop ➢If condition is met, loop exited immediately 95
  • 96. continue Statements ➢ Used in while, for, and do...while structures ➢ When executed in a loop, the remaining statements in the loop are skipped; proceeds with the next iteration of the loop ➢ When executed in a while/do…while structure, expression evaluated immediately after continue statement ➢ In a for structure, the update statement is executed after the continue statement; then the loop condition executes 96
  • 97. Nested Control Structures ➢Provides new power, subtlety, and complexity ➢if, if…else, and switch structures can be placed within while loops ➢for loops can be found within other for loops 97
  • 98. Nested Control Structures (Example) ➢ for(int i = 1; i <= 5; i++){ for(int j = 1; j <= i; j++) System.out.print(“*”); System.out.println(); } ➢ Output: * ** *** **** ***** 98
  • 99. Programming example: do-while and nested loops ➢Write a program that will prompt the user for the number of times to say Hello. ➢ Read in the user’s input and output “Hello” n times (where n is the number of time specified by the user). ➢At the end of the program, ask the user if he/she would like to run the program again… ➢ If yes, prompt the user again for the number of times ➢ If no, exit. 99
  • 100. Array ➢Definition: structured data type with a fixed number of components ➢Every component is of the same type ➢Components are accessed using their relative positions in the array 100
  • 101. One-Dimensional Arrays ➢ Syntax to instantiate an array: ➢dataType[ ] arrayName; arrayName = new dataType[intExp] ➢dataType[ ] arrayName = new dataType[intExp] ➢dataType[ ] arrayName1, arrayName2; ➢ Syntax to access an array component: ➢arrayName[indexExp] • intExp = number of components in array >= 0 • 0 <= indexExp <= intExp 101
  • 102. Array num: int[ ] num = new int [5]; 102
  • 104. Arrays ➢ Not necessary to know array size at compile time ➢ arrayName.length returns the number of components in array ➢ Loops used to step through elements in array and perform operations ➢ Elements initialized to default value ➢ 0 for integrals ➢ 0.0 for floating point ➢ null for object references 104
  • 105. Arrays ➢ Some operations on arrays: ➢ Initialize ➢ Input data ➢ Output stored data ➢ Find largest/smallest/sum/average of elements 105
  • 106. How To Specify Array Size During Program Execution int arraySize; //Line 1 System.out.print("Enter the size of the array: "); //Line 2 arraySize = Integer.parseInt(keyboard.readLine()); //Line 3 System.out.println(); //Line 4 int[] list = new int[arraySize]; //Line 5 106
  • 107. Instance Variable length ➢Contains size of array ➢public member ➢Is final ➢Can be directly accessed in program using array name and dot operator ➢Example ➢If: int[] list = {10, 20, 30, 40, 50, 60}; ➢Then: list.length is 6 107
  • 108. Code to Initialize Array to Specific Value (10.00) for(index = 0; index < sale.length; index++) sale[index] = 10.00; 108
  • 109. Code to Read Data into Array for(index = 0; index < sale.length; index++) sale[index] = Integer.parseInt(keyboard.readLine()); 109
  • 110. Code to Print Array for(index = 0; index < sale.length; index++) System.out.print(sale[index] + " "); 110
  • 111. Code to Find Sum and Average of Array sum = 0; for(index = 0; index < sale.length; index++) sum = sum + sale[index]; if(sale.length != 0) average = sum / sale.length; else average = 0.0; 111
  • 112. Determining Largest Element in Array maxIndex = 0; for(index = 1; index < sale.length; index++) if(sale[maxIndex] < sale[index]) maxIndex = index; largestSale = sale[maxIndex]; 112
  • 113. Array Index Out of Bounds ➢Array in bounds if: 0 <= index <= arraySize – 1 ➢If index < 0 or index > arraySize: ArrayIndexOutOfBoundsException exception is thrown ➢Base address: memory location of first component in array 113
  • 114. Array variables as reference variables Changes to elements in listA or listB will change both, as both references point to the same array 114
  • 116. Arrays of Objects ➢Can use arrays to manipulate objects ➢Example: create array named array1 with N objects of type T T [ ] array1 = new T[N] ➢Can instantiate array1 as follows: for(int j=0; j <array1.length; j++) array1[j] = new T(); 116
  • 117. Two-Dimensional Arrays ➢ Data is sometimes in table form (difficult to represent using one-dimensional array) ➢ To declare/instantiate two-dimensional array: dataType[ ][ ] arrayName = new dataType[intExp1][intExp2]; ➢ To access a component of a 2-dimensional array: arrayName[indexExp1][indexExp2]; • intExp1, intExp2 >= 0 • indexExp1 = row position • indexExp2 = column position 117
  • 118. Two-Dimensional Arrays ➢Can specify different number of columns for each row (ragged arrays) ➢Three ways to process 2-D arrays ➢Entire array ➢Particular row of array (row processing) ➢Particular column of array (column processing) ➢Processing algorithms similar to processing algorithms of one-dimensional arrays 118
  • 119. double[ ][ ]sales = new double[10][5]; Two-Dimensional Arrays 119
  • 122. Multidimensional Arrays ➢ Can define three-dimensional arrays or n- dimensional array (n can be any number) ➢ Syntax to declare and instantiate array: dataType[ ][ ]…[ ] arrayName = new dataType[intExp1][intExp2]…[intExpn]; ➢ Syntax to access component: arrayName[indexExp1][indexExp2]…[indexExpn] • intExp1, intExp2, ..., intExpn = positive integers • indexExp1,indexExp2, ..., indexExpn = non- negative integers 122
  • 123. Loops to Process Multidimensional Arrays double[][][] carDealers = new double [10][5][7]; for(i = 0; i < 10; i++) for(j = 0; j < 5; j++) for(k = 0; k < 7; k++) carDealers[i][j][k] = 10.00; 123
  • 124. Returning to Methods… ➢Let’s now switch gears and look at how users can create their own methods. 124
  • 125. Syntax: Value-Returning Method modifier(s) returnType methodName(formal parameter list) { statements } 125
  • 127. Terminology ➢ Package: collection of related classes ➢ Class: consists of methods. All Java code must reside in a class. ➢ Method: designed to accomplish a specific task 127
  • 128. Packages ➢ Files with a .class extension are aggregated into packages, or collections of related classes. ➢ Packages enforce modularity. ➢ Any class can belong to only 1 package. ➢ Packages may contain subpackages to arbitrary levels. ➢ The primary package is java and its main subpackage is lang. 128
  • 129. Packages (cont’d) ➢ All classes in the java.lang package are automatically imported into every program. ➢ Programmers typically import classes from packages to avoid using fully qualified names. ➢If a program imports the class java.util.Date, the programmer then can use Date instead of the fully qualified name. ➢ In UML, they look like: 129
  • 130. Packages (cont’d) ➢java and the javax packages are standard packages. ➢The javax packages are extensions to the earlier java packages. ➢Support string and text processing, numeric computation, networking, graphics, security, and so on. 130
  • 131. Packages (cont’d) ➢Packages can be used to resolve name conflicts. ➢The java.awt package has a List class and the java.util package has a List interface. The fully qualified names java.awt.List java.util.List disambiguate. 131
  • 132. Packages (cont’d) ➢ Every class belongs to a package. ➢ The package to which a class belongs can be explicitly declared with the package statement in a source file. ➢ A class belongs to a default unnamed package if a containing package is not explicitly declared. ➢ Sun’s naming convention dictates that package names are in all lowercase letters. 132
  • 133. package statement ➢The package statement, if present, occurs as the first uncommented line in a source file. ➢The source file Hi.java could begin package hiPkg; // Note: 1st line import java.util.Date; class Hi { ... } 133
  • 134. Summary of packages ➢ Convenient way to group related classes into software libraries. ➢Example: java.math ➢ For small programs and projects, default packages are typically sufficient. ➢Always use packages if you ever expect to reuse code again. ➢ Explicitly named packages are especially useful for large projects with many programmers. 134
  • 135. What is an object? ➢ A representation of almost anything you need to model in a program. ➢ The basic unit of object orientation. ➢ Has attributes, behavior and identity. ➢ Members of a class. ➢ Attributes and behaviors are defined by the class definition. 135
  • 136. What is a class? (part 1) ➢ A description or definition of a set of objects, that share common features. ➢ A class has attributes, behaviors, methods, and state. ClassName -privateAttr : type #protectedAttr : type +publicAttr : type +methodA(args) : returnType 136
  • 137. What is a class? (part 2) ➢ Attributes – Hold state information of an object. These should not be directly accessible to the outside world. ➢ Behavior – Activity of an object that is visible to the outside world. ➢ Method – Member function defined as part of the declaration of a class. ➢ State – Reflects the current values of all attributes of a given object and is the result of the behavior of an object over time. 137
  • 138. Properties of Java Classes 1. Class is not a real-world entity. It is just a template or blueprint or prototype from which objects are created. 2. Class does not occupy memory. 3. Class is a group of variables of different data types and a group of methods. 4. A Class in Java can contain: 1. Data member 2. Method 3. Constructor 4. Nested Class 5. Interface 138
  • 139. Java Objects ➢ An object in Java is a basic unit of Object-Oriented Programming and represents real-life entities. ➢ Objects are the instances of a class that are created to use the attributes and methods of a class. ➢ A typical Java program creates many objects, which as you know, interact by invoking methods. An object consists of : 1. State: It is represented by attributes of an object. It also reflects the properties of an object. 2. Behavior: It is represented by the methods of an object. It also reflects the response of an object with other objects. 3. Identity: It gives a unique name to an object and enables one object to interact with other objects. 139
  • 140. Java Methods ➢The method in Java or Methods of Java is a collection of statements that perform some specific task and return the result to the caller. ➢A Java method can perform some specific task without returning anything. ➢Java Methods allow us to reuse the code without retyping the code. ➢In Java, every method must be part of some class 140
  • 142. ➢Advantage of Method • Code Reusability • Code Optimization 142
  • 143. Method Declaration ➢ In general, method declarations have 6 components: ➢ 1. Modifier: It defines the access type of the method i.e. from where it can be accessed in your application. In Java, there 4 types of access specifiers. (4 Ps) ➢ 2. The return type: The data type of the value returned by the method or void if does not return a value. It is Mandatory in syntax. ➢ 3. Method Name: the rules for field names apply to method names as well, but the convention is a little different. It is Mandatory in syntax. 143
  • 144. Method Declaration(1) ➢ 4. Parameter list: Comma-separated list of the input parameters is defined, preceded by their data type, within the enclosed parenthesis. If there are no parameters, you must use empty parentheses (). It is Optional in syntax. ➢ 5. Exception list: The exceptions you expect by the method can throw, you can specify these exception(s). It is Optional in syntax. ➢ 6. Method body: it is enclosed between braces. The code you need to be executed to perform your intended operations. It is Optional in syntax. 144
  • 146. Types of Methods in Java There are two types of methods in Java: 1. Predefined Method ➢ In Java, predefined methods are the method that is already defined in the Java class libraries is known as predefined methods. ➢ It is also known as the standard library method or built- in method. We can directly use these methods just by calling them in the program at any point. 2. User-defined Method ➢ The method written by the user or programmer is known as a user-defined method. These methods are modified according to the requirement. 146
  • 147. import Statement ➢ Used to import the components of a package into a program ➢ Reserved word ➢ import java.io.*; imports the (components of the) package java.io into the program ➢ Primitive data types and the class String ➢ Part of the Java language ➢ Don’t need to be imported 147
  • 148. Do I have to import ? ➢ Java programs often include import statements such as import java.util.Date; for convenience. ➢ If a program requires the standard Date class, for instance, then the fully qualified name java.util.Date must be used if the import is omitted. ➢ Subpackages must be explicitly imported. 148
  • 149. First Program Revisited package hiPkg; // rest of line is comment /* comment that spans multiple lines */ import java.util.Date; public class Hi { public static void main(String [] args) { System.out.print(“Hi!”); } } 149
  • 150. Running the program ➢As stated before, the entry point of the program is the main method ➢If the signature of the main method is not “public static void main(String [ ] args)”, then it may compile, but it will not run ➢To compile ➢javac Hi.java ➢To run ➢java Hi 150
  • 151. Using Predefined Classes and Methods in a Program ➢To use a method you must know: ➢ Name of class containing method (Math) ➢ Name of package containing class (java.lang) ➢ Name of method (pow), its parameters (int a, int b), and function (a^b) 151
  • 152. class Math (Package: java.lang) 152
  • 153. class Math (Package: java.lang) 153
  • 154. Using Predefined Classes and Methods in a Program ➢Example method call: Math.pow(2,3); //calls pow method in class Math ➢(Dot) . Operator: used to access the method in the class 154
  • 155. The Class String Revisited ➢String variables are reference variables ➢Given String name; ➢ Equivalent Statements: name = new String("Lisa Johnson"); name = “Lisa Johnson”; 155
  • 156. The Class String Revisited ➢The String object is an instance of class string ➢The value “Lisa Johnson” is instantiated ➢The address of the value is stored in name ➢The new operator is unnecessary when instantiating Java strings ➢String methods are called using the dot operator 156
  • 157. Commonly Used String Methods ➢String(String str) ➢char charAt(int index) ➢int indexOf(char ch) ➢int indexOf(String str, int pos) ➢int compareTo(String str) 157
  • 158. Commonly Used String Methods ➢String concat(String str) ➢boolean equals(String str) ➢int length() ➢String replace(char ToBeReplaced, char ReplacedWith) ➢String toLowerCase() ➢String toUpperCase() 158
  • 159. User-Defined Methods ➢ Value-returning methods ➢Used in expressions ➢Calculate and return a value ➢Can save value for later calculation or print value ➢ Modifiers: public, private, protected, static, abstract, final ➢ returnType: type of value that the method calculates and returns (using return statement) ➢ methodName: Java identifier, name of method 159
  • 160. Syntax Syntax: Formal Parameter List The syntax of the formal parameter list is: dataType identifier, dataType identifier,... Method Call The syntax to call a value-returning method is: methodName(actual parameter list) 160
  • 161. Syntax Syntax: return Statement The return statement has the following syntax: return expr; Syntax: Actual Parameter List The syntax of the actual parameter list is: expression or variable, expression or variable, ... 161
  • 162. Equivalent Method Definitions public static double larger(double x, double y) { double max; if(x >= y) max = x; else max = y; return max; } 162
  • 163. Equivalent Method Definitions public static double larger(double x, double y) { if(x >= y) return x; else return y; } 163
  • 164. Flow of Execution ➢ Execution always begins with the first statement in the method main ➢ User-defined methods execute only when called ➢ Call to method transfers control from caller to called method ➢ In method call statement, specify only actual parameters, not data type or method type ➢ Control goes back to caller when method exits 164
  • 165. Programming Example: Largest Number ➢ Input: Set of 10 numbers ➢ Output: Largest of 10 numbers ➢ Solution: ➢Get numbers one at a time ➢Method largest number: returns the larger of 2 numbers ➢For loop: calls method largest number on each number received and compares to current largest number 165
  • 166. Void Methods ➢Similar in structure to value-returning methods ➢No method type ➢Call to method is always stand-alone statement ➢Can use return statement to exit method early 166
  • 167. Void Methods: Syntax Method Definition The general form (syntax) of a void method without parameters is as follows: modifier(s) void methodName() { statements } Method Call (Within the Class) The method call has the following syntax: methodName(); 167
  • 168. Void Methods with Parameters: Syntax Method Definition The definition of a void method with parameters has the following syntax: modifier(s) void methodName(formal parameter list) { statements } Formal Parameter List The formal parameter list has the following syntax: dataType variable, dataType variable, ... 168
  • 169. Void Methods with Parameters: Syntax ➢Method Call ➢The method call has the following syntax: methodName(actual parameter list); ➢Actual Parameter List ➢The actual parameter list has the following syntax: expression or variable, expression or variable, ... 169
  • 170. Primitive Data Type Variables as Parameters ➢A formal parameter receives a copy of its corresponding actual parameter ➢If a formal parameter is a variable of a primitive data type ➢Value of actual parameter is directly stored ➢Cannot pass information outside the method ➢Provides only a one-way link between actual parameters and formal parameters 170
  • 171. Reference Variables as Parameters ➢If a formal parameter is a reference variable ➢Copies value of corresponding actual parameter ➢Value of actual parameter is address of object where actual data is stored ➢Both formal and actual parameter refer to same object 171
  • 172. Uses of Reference Variables as Parameters ➢Can return more than one value from a method ➢Can change the value of the actual object ➢When passing address, would save memory space and time, relative to copying large amount of data 172
  • 174. Method Overloading ➢ Method overloading: more than one method can have the same name ➢ Overloading Rules ➢Every method must have a different number of formal parameters OR ➢If the number of formal parameters is the same, then the data type of the formal parameter (in the order listed), must differ in at least one position ➢Types of parameters determine which method executes 174
  • 175. Constructors and methods ➢All Java functions are encapsulated as either constructors or methods. ➢A constructor has the same name as its encapsulating class and no return type or void in place of a return type. For instance, a Date constructor would have the name Date. 175
  • 176. Constructors and methods ➢All Java functions are encapsulated as either constructors or methods. ➢A constructor has the same name as its encapsulating class and no return type or void in place of a return type. For instance, a Date constructor would have the name Date. 176
  • 177. Constructors ➢Constructors are used with the new operator to construct instances of a class. The statement Date today = new Date(); illustrates. ➢Constructors are typically overloaded; that is, a class typically has several constructors. 177
  • 178. Constructors vs. Methods ➢A method does not have the same name as its encapsulating class and has either a return type or void in place of a return type. ➢Methods define the operations appropriate to a class and its instances, and can be called many times for a single instance ➢Constructors are only called when the object is created. 178
  • 179. Constructors vs. Methods ➢A constructor cannot be static, but a method can be static. ➢Constructors and methods can be parameterized. The parameter names and data types must be provided. ➢Methods, like constructors, can be overloaded but must be distinguished by their names and/or parameter types. 179