Introduction to Java
• Java Translation
• Program Structure
• Classes and Objects
• Primitive data types
• Flow of Control
• Loops
The Java compiler translates Java source code into a special representation called bytecode in the .class file
Java bytecode is not the machine language for any specific CPU
Another software tool, called an interpreter (in our case the Java Virtual Machine), executes the bytecode
Java is considered to be architecture-neutral
The Java compiler is not tied to any particular machine
The JVM can be implemented on any machine
Java Translation
Java Program Structure
• In the Java programming language:– A program is made up of one or more classes– A class contains zero or more attributes– A class contains one or more methods– A method contains program statements
• A Java application starts with a class containing a method called main
• See Lincoln.java (page 28)
4
Java Program Structure
public class MyProgram
{
}
// comments about the class
class header
class body
Comments can be placed almost anywhere
5
Java Program Structure
public class MyProgram
{
}
// comments about the class
public static void main (String[] args)
{
}
// comments about the method
method headermethod body
6
Objects
• An object has:
– state - descriptive characteristics
– behaviors - what it can do (or what can be done to it)
• The state of a bank account includes its balance
• The behaviors associated with a bank account include the ability to get the balance, make deposits, and make withdrawals
• Note that the behavior of an object might change its state, e.g. making a deposit will increase the balance
Classes
• An object is defined by a class representing a concept
• A class is the blueprint for each instance of an object
• Multiple objects can be created from the same class
• A class has attributes that define the state of each object
• A class has methods that define the behavior of the object
• The class that contains the main method represents the starting point for a Java program
• The program can and usually does contain more classes than just the one that contains the main method
Objects and Classes
A Class(The Concept)
John’s Bank AccountBalance: $5,257.51
Three objects(Three Instancesof the Concept)
Bill’s Bank AccountBalance: $1,245,069.89
Mary’s Bank AccountBalance: $16,833.27
Multiple objectsof the same class
BankAccount
- balance: float
+ getBalance(): float+ deposit(float amount): bool+ withdraw(float amount): bool
Primitive Data• There are eight primitive data types in Java
• Four of them represent integers:
– byte, short, int, long
• Two of them represent floating point numbers:
– float, double
• One of them represents characters:
– char
• And one of them represents boolean values:
– boolean
Characters
• A char variable stores a single character
• Character literals are delimited by single quotes:
'a' 'X' '7' '$' ',' '\n'
• Example declarations:
char topGrade = 'A';
char terminator = ';', separator = ' ';
• Note the distinction between a primitive character variable, which holds only one character, and a String object, which can hold a sequence of multiple characters
Boolean
• A boolean value represents a true or false condition
• The reserved words true and false are the only valid values for a boolean type
boolean done = false;
• A boolean variable can represent any two states such as a light bulb being on or off
boolean isOn = true;
Flow of Control• Unless specified otherwise, the order of statement
execution through a method is linear:
– one statement after another in sequence
• Some programming statements allow us to:
– decide whether or not to execute a particular statement– execute a statement over and over, repetitively
• These decisions are based on boolean expressions (or conditions) that evaluate to true or false
• The order of statement execution is called the flow of control
Conditional Statements
• A conditional statement lets us choose which statement will be executed next
• Therefore they are sometimes called selection statements
• Conditional statements give us the power to make basic decisions
• The Java conditional statements are the:
– if statement– if-else statement– switch statement
14
The if Statement• The if statement has the following syntax:
if ( condition ) statement;
if is a Javareserved word
The condition must be aboolean expression. It mustevaluate to either true or false.
If the condition is true, the statement is executed.If it is false, the statement is skipped.
15
The if-else Statement
• An else clause can be added to an if statement to make an if-else statement
• If the condition is true, statement1 is executed; if the condition is false, statement2 is executed
• One or the other will be executed, but not both
• See Wages.java (page 211)
if ( condition ) statement1;else statement2;
16
Block Statements
• Several statements can be grouped into a block statement delimited by braces
• A block statement can be used wherever a statement is called for in the Java syntax
if (total > MAX){ System.out.println ("Error!!"); errorCount++;}
Now the increment will only occur when the if condition is true
The switch Statement
• The general syntax of a switch statement is:
switch ( expression ){ case value1 : statement-list1 case value2 : statement-list2 case value3 : statement-list3 case ...
}
switchandcaseare
reservedwords
If expressionmatches value2,control jumpsto here
Comparing Characters
• Therefore, if we want to base a decision in our program on whether a character is a digit or not, we can use the following code:if (character >= ‘0’ && character <= ‘9’)
System.out.println (“Yes, it’s a digit!”);
• We can also check for a valid upper case alphabetic character as follows:if (character >= ‘A’ && character <= ‘Z’)
System.out.println (“It’s a capital letter!”);
Comparing Strings• Remember that in Java a string is an object
• We cannot use the == operator to determine if the values of two strings are identical (character by character)
• The equals method can be called with strings to determine if two strings contain exactly the same characters in the same order
• The equals method returns a boolean result
if (name1.equals(name2)) System.out.println ("Same name");
Comparing Strings
• We cannot use the relational operators to compare strings
• The String class contains a method called compareTo to determine if one string comes before another
• A call to name1.compareTo(name2)
– returns zero if name1 and name2 are equal (contain the same characters)
– returns a negative value if name1 is less than name2
– returns a positive value if name1 is greater than name2
Strings
• String is basically just a collection of characters.
• Thus, the string “Martyn” could be thought of as a 6-element array ('M', 'a', 'r', 't', 'y', 'n').
• The String class allows us to manipulate these data items.
Strings in java
• String is a class in Java• Strings are constant (values cannot be
changed after they are created)• Set of characters "Lisa Simpson" is a
string.• "A" is a string, 'A' is a character. Note the
difference here. Character literals are delimited by single quotes and String literals are delimited by double quotes.
Methods on Strings
• The String class provides methods to
– Return the character at a specific index (charAt)
– Return the index of a specific character (indexOf)
– Compare two strings (compareTo)
– Concatenate two strings (concat)
– Check the length of a string (length)
– Extract a sub-string (substring)
– Replace all instances of a character with another character (replace)
Repetition Statements• Repetition statements allow us to execute a
statement or a block of statements multiple times
• Often they are referred to as loops
• Like conditional statements, they are controlled by boolean expressions
• Java has three kinds of repetition statements:– the while loop– the do loop– the for loop
• The programmer should choose the right kind of loop for the situation
The while Statement
Execute Loop_Body
Startwhile(Boolean_Expression)Loop_Body
true
false
End loop
Evaluate Boolean_Expression
The do-while Statement
true
Start
Execute Loop_Body
doLoop_Body
while(Boolean_Expression);
falseEnd loop
Evaluate Boolean_Expression
The for Statement
for( Initialization_Action ; Boolean_Expression ; Update_Action)Loop_Body
true
Start
Execute Initialization_Action
false
End loop
Evaluate Boolean_Expression
Execute Loop_Body
Execute Update_Action