SlideShare a Scribd company logo
1 of 111
Programming
Techniques(3)
Dr: Ahmad Abdallah
Semester Number:1
Academic year:2021-2022
Course Information
• Books
Java Software Solutions Foundations of
Program Design 8th , John Lewis • William
Loftus
Course Informations
• Grades
Final exam 50
Mid-term exam 20
Section Work 10
Practical Exam 10
Assignments 10
What is programing and program development life cycle ?
• Programing is the process of problem solving
• Step 1:analyze the problem
- understand the overall problem
- Define problem requirements
• Does a program require user interaction
– If yes, what is the input?
• What is the expected output?
- Design steps (algorithm) to solve the problem
Algorithm: step by step problem-solving process.
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
• Step 2: implement the algorithm
– implement the algorithm in code
– Verify that the algorithm works
• Step 3:maintenance
– Use and modify the program if the problem domain
changes
– If the problem is complex, divided it to sub-problems
– Analyze each sub-problem as above
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
What is programing and program development life cycle ?
Example
• Write a program to find area of rectangle?
The area of rectangle is given by the following formula:
area=rect length* rect width
Input
Rectangle length, Rectangle width
Process
area=rect length* rect width
Output
Print out the area.
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Java
• The Java programming language was created by
Sun Microsystems, Inc.
• It was introduced in 1995 and it's popularity has
grown quickly since
• A programming language specifies the words and
symbols that we can use to write a program
• A programming language employs a set of rules
that dictate how the words and symbols can be put
together to form valid program statements
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Java Program Structure
• In the Java programming language:
– A program is made up of one or more classes
– A class contains one or more methods
– A method contains program statements
• These terms will be explored in detail throughout
the course
• A Java application always contains a method
called main
• See Lincoln.java
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
//********************************************************************
// Lincoln.java Author: Lewis/Loftus
//
// Demonstrates the basic structure of a Java application.
//********************************************************************
public class Lincoln
{
//-----------------------------------------------------------------
// Prints a presidential quote.
//-----------------------------------------------------------------
public static void main (String[] args)
{
System.out.println ("A quote by Abraham Lincoln:");
System.out.println ("Whatever you are, be a good one.");
}
}
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
//********************************************************************
// Lincoln.java Author: Lewis/Loftus
//
// Demonstrates the basic structure of a Java application.
//********************************************************************
public class Lincoln
{
//-----------------------------------------------------------------
// Prints a presidential quote.
//-----------------------------------------------------------------
public static void main (String[] args)
{
System.out.println ("A quote by Abraham Lincoln:");
System.out.println ("Whatever you are, be a good one.");
}
}
Output
A quote by Abraham Lincoln:
Whatever you are, be a good one.
Java Program Structure
public class MyProgram
{
}
// comments about the class
class header
class body
Comments can be placed almost anywhere
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Java Program Structure
public class MyProgram
{
}
// comments about the class
public static void main (String[] args)
{
}
// comments about the method
method header
method body
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Comments
• Comments should be included to explain the
purpose of the program and describe processing
steps
• They do not affect how a program works
• Java comments can take three forms:
// this comment runs to the end of the line
/* this comment runs to the terminating
symbol, even across line breaks */
/** this is a javadoc comment */
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Identifiers
• Identifiers are the "words" in a program
• A Java identifier can be made up of letters, digits,
the underscore character ( _ ), and the dollar sign
• Identifiers cannot begin with a digit
• Java is case sensitive: Total, total, and
TOTAL are different identifiers
• By convention, programmers use different case
styles for different types of identifiers, such as
– title case for class names - Lincoln
– upper case for constants - MAXIMUM
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Identifiers
• Sometimes the programmer chooses the
identifier(such as Lincoln)
• Sometimes we are using another programmer's
code, so we use the identifiers that he or she
chose (such as println)
• Often we use special identifiers called reserved
words that already have a predefined meaning in
the language
• A reserved word cannot be used in any other way
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Reserved Words
• The Java reserved words:
abstract
assert
boolean
break
byte
case
catch
char
class
const
continue
default
do
double
else
enum
extends
false
final
finally
float
for
goto
if
implements
import
instanceof
int
interface
long
native
new
null
package
private
protected
public
return
short
static
strictfp
super
switch
synchronized
this
throw
throws
transient
true
try
void
volatile
while
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Quick Check
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Which of the following are valid Java identifiers?
grade
quizGrade
NetworkConnection
frame2
3rdTestScore
MAXIMUM
MIN_CAPACITY
student#
Shelves1&2
Program Development
• The mechanics of developing a program include
several activities:
– writing the program in a specific programming language
(such as Java)
– translating the program into a form that the computer
can execute
– investigating and fixing various types of errors that can
occur
• Software tools can be used to help with all parts
of this process
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Programming Languages
• Each type of CPU executes only a particular
machine language
• A program must be translated into machine
language before it can be executed
• A compiler is a software tool which translates
source code into a specific target language
• Sometimes, that target language is the machine
language for a particular CPU type
• The Java approach is somewhat different
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Java Translation
• The Java compiler translates Java source code
into a special representation called bytecode
• Java bytecode is not the machine language for
any traditional CPU
• Bytecode is executed by the Java Virtual Machine
(JVM)
• Therefore Java bytecode is not tied to any
particular machine
• Java is considered to be architecture-neutral
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Java Translation
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Development Environments
• There are many programs that support the
development of Java software, including:
– Java Development Kit (JDK)
– Eclipse
– NetBeans
– BlueJ
– jGRASP
• Though the details of these environments differ,
the basic compilation and execution process is
essentially the same
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Syntax and Semantics
• The syntax rules of a language define how we can
put together symbols, reserved words, and
identifiers to make a valid program
• The semantics of a program statement define
what that statement means (its purpose or role in
a program)
• A program that is syntactically correct is not
necessarily logically (semantically) correct
• A program will always do what we tell it to do, not
what we meant to tell it to do
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Errors
• A program can have three types of errors
• The compiler will find syntax errors and other basic
problems (compile-time errors)
– If compile-time errors exist, an executable version of the program is
not created
• A problem can occur during program execution, such as
trying to divide by zero, which causes a program to
terminate abnormally (run-time errors)
• A program may run, but produce incorrect results, perhaps
using an incorrect formula (logical errors)
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Basic Program Development
errors?
errors?
Edit and
save program
Compile program
Execute program and
evaluate results
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Outline
What is programing and program development
life cycle ?
The Java Programming Language
Program Development
Object-Oriented Programming
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Object-Oriented Programming
• Java is an object-oriented programming language
• As the term implies, an object is a fundamental
entity in a Java program
• Objects can be used effectively to represent real-
world entities
• For instance, an object might represent a particular
employee in a company
• Each employee object handles the processing and
data management related to that employee
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
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 account
number and its current balance
• The behaviors associated with a bank account
include the ability to make deposits and
withdrawals
• Note that the behavior of an object might change
its state
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Classes
• An object is defined by a class
• A class is the blueprint of an object
• The class uses methods to define the behaviors of
the object
• The class that contains the main method of a Java
program represents the entire program
• A class represents a concept, and an object
represents the embodiment of that concept
• Multiple objects can be created from the same
class
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Class = Blueprint
• One blueprint to create several similar, but
different, houses:
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
Objects and Classes
Bank
Account
A class
(the concept)
John’s Bank Account
Balance: $5,257
An object
(the realization)
Bill’s Bank Account
Balance: $1,245,069
Mary’s Bank Account
Balance: $16,833
Multiple objects
from the same class
Slides adapted from Java Software Solutions Foundations of Program Design 8th ,
John Lewis • William Loftus
The print Method
• The System.out object provides another service
as well
• The print method is similar to the println
method, except that it does not advance to the
next line
• Therefore anything printed after a print
statement will appear on the same line
• See Countdown.java
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
//********************************************************************
// Countdown.java Author: Lewis/Loftus
//
// Demonstrates the difference between print and println.
//********************************************************************
public class Countdown
{
//-----------------------------------------------------------------
// Prints two lines of output representing a rocket countdown.
//-----------------------------------------------------------------
public static void main(String[] args)
{
System.out.print("Three... ");
System.out.print("Two... ");
System.out.print("One... ");
System.out.print("Zero... ");
System.out.println("Liftoff!"); // appears on first output line
System.out.println("Houston, we have a problem.");
}
}
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
//********************************************************************
// Countdown.java Author: Lewis/Loftus
//
// Demonstrates the difference between print and println.
//********************************************************************
public class Countdown
{
//-----------------------------------------------------------------
// Prints two lines of output representing a rocket countdown.
//-----------------------------------------------------------------
public static void main(String[] args)
{
System.out.print("Three... ");
System.out.print("Two... ");
System.out.print("One... ");
System.out.print("Zero... ");
System.out.println("Liftoff!"); // appears on first output line
System.out.println("Houston, we have a problem.");
}
}
Output
Three... Two... One... Zero... Liftoff!
Houston, we have a problem.
String Concatenation
• The string concatenation operator (+) is used to
append one string to the end of another
"Peanut butter " + "and jelly"
• It can also be used to append a number to a string
• A string literal cannot be broken across two lines
in a program
• See Facts.java
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
//********************************************************************
// Facts.java Author: Lewis/Loftus
//
// Demonstrates the use of the string concatenation operator and the
// automatic conversion of an integer to a string.
//********************************************************************
public class Facts
{
//-----------------------------------------------------------------
// Prints various facts.
//-----------------------------------------------------------------
public static void main(String[] args)
{
// Strings can be concatenated into one long string
System.out.println("We present the following facts for your "
+ "extracurricular edification:");
System.out.println();
// A string can contain numeric digits
System.out.println("Letters in the Hawaiian alphabet: 12");
continue
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
continue
// A numeric value can be concatenated to a string
System.out.println("Dialing code for Antarctica: " + 672);
System.out.println("Year in which Leonardo da Vinci invented "
+ "the parachute: " + 1515);
System.out.println("Speed of ketchup: " + 40 + " km per year");
}
}
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
continue
// A numeric value can be concatenated to a string
System.out.println ("Dialing code for Antarctica: " + 672);
System.out.println ("Year in which Leonardo da Vinci invented "
+ "the parachute: " + 1515);
System.out.println("Speed of ketchup: " + 40 + " km per year");
}
}
Output
We present the following facts for your extracurricular edification:
Letters in the Hawaiian alphabet: 12
Dialing code for Antarctica: 672
Year in which Leonardo da Vinci invented the parachute: 1515
Speed of ketchup: 40 km per year
String Concatenation
• The + operator is also used for arithmetic addition
• The function that it performs depends on the type of the
information on which it operates
• If both operands are strings, or if one is a string and one is
a number, it performs string concatenation
• If both operands are numeric, it adds them
• The + operator is evaluated left to right, but parentheses
can be used to force the order
• See Addition.java
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
//********************************************************************
// Addition.java Author: Lewis/Loftus
//
// Demonstrates the difference between the addition and string
// concatenation operators.
//********************************************************************
public class Addition
{
//-----------------------------------------------------------------
// Concatenates and adds two numbers and prints the results.
//-----------------------------------------------------------------
public static void main(String[] args)
{
System.out.println("24 and 45 concatenated: " + 24 + 45);
System.out.println("24 and 45 added: " + (24 + 45));
}
}
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
//********************************************************************
// Addition.java Author: Lewis/Loftus
//
// Demonstrates the difference between the addition and string
// concatenation operators.
//********************************************************************
public class Addition
{
//-----------------------------------------------------------------
// Concatenates and adds two numbers and prints the results.
//-----------------------------------------------------------------
public static void main(String[] args)
{
System.out.println("24 and 45 concatenated: " + 24 + 45);
System.out.println("24 and 45 added: " + (24 + 45));
}
}
Output
24 and 45 concatenated: 2445
24 and 45 added: 69
Variables
• A variable is a name for a location in memory that
holds a value
• A variable declaration specifies the variable's name
and the type of information that it will hold
int total;
int count, temp, result;
Multiple variables can be created in one declaration
data type variable name
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Variable Initialization
• A variable can be given an initial value in the
declaration
int sum = 0;
int base = 32, max = 149;
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
• When a variable is referenced in a program, its
current value is used
• See PianoKeys.java
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
//********************************************************************
// PianoKeys.java Author: Lewis/Loftus
//
// Demonstrates the declaration, initialization, and use of an
// integer variable.
//********************************************************************
public class PianoKeys
{
//-----------------------------------------------------------------
// Prints the number of keys on a piano.
//-----------------------------------------------------------------
public static void main(String[] args)
{
int keys = 88;
System.out.println("A piano has " + keys + " keys.");
}
}
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
//********************************************************************
// PianoKeys.java Author: Lewis/Loftus
//
// Demonstrates the declaration, initialization, and use of an
// integer variable.
//********************************************************************
public class PianoKeys
{
//-----------------------------------------------------------------
// Prints the number of keys on a piano.
//-----------------------------------------------------------------
public static void main(String[] args)
{
int keys = 88;
System.out.println("A piano has " + keys + " keys.");
}
}
Output
A piano has 88 keys.
Assignment
• An assignment statement changes the value of a
variable
• The assignment operator is the = sign
total = 55;
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
• The value that was in total is overwritten
• You can only assign a value to a variable that is
consistent with the variable's declared type
• See Geometry.java
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
//********************************************************************
// Geometry.java Author: Lewis/Loftus
//
// Demonstrates the use of an assignment statement to change the
// value stored in a variable.
//********************************************************************
public class Geometry
{
//-----------------------------------------------------------------
// Prints the number of sides of several geometric shapes.
//-----------------------------------------------------------------
public static void main(String[] args)
{
int sides = 7; // declaration with initialization
System.out.println("A heptagon has " + sides + " sides.");
sides = 10; // assignment statement
System.out.println("A decagon has " + sides + " sides.");
sides = 12;
System.out.println("A dodecagon has " + sides + " sides.");
}
}
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
//********************************************************************
// Geometry.java Author: Lewis/Loftus
//
// Demonstrates the use of an assignment statement to change the
// value stored in a variable.
//********************************************************************
public class Geometry
{
//-----------------------------------------------------------------
// Prints the number of sides of several geometric shapes.
//-----------------------------------------------------------------
public static void main (String[] args)
{
int sides = 7; // declaration with initialization
System.out.println ("A heptagon has " + sides + " sides.");
sides = 10; // assignment statement
System.out.println ("A decagon has " + sides + " sides.");
sides = 12;
System.out.println ("A dodecagon has " + sides + " sides.");
}
}
Output
A heptagon has 7 sides.
A decagon has 10 sides.
a dodecagon has 12 sides.
Constants
• A constant is an identifier that is similar to a
variable except that it holds the same value during
its entire existence
• As the name implies, it is constant, not variable
• The compiler will issue an error if you try to change
the value of a constant
• In Java, we use the final modifier to declare a
constant
final int MIN_HEIGHT = 69;
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Interactive Programs
• Programs generally need input on which to
operate
• The Scanner class provides convenient methods
for reading input values of various types
• A Scanner object can be set up to read input from
various sources, including the user typing values
on the keyboard
• Keyboard input is represented by the System.in
object
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Reading Input
• The following line creates a Scanner object that
reads from the keyboard:
Scanner scan = new Scanner(System.in);
• The new operator creates the Scanner object
• Once created, the Scanner object can be used to
invoke various input methods, such as:
answer = scan.nextLine();
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Reading Input
• The Scanner class is part of the java.util class
library, and must be imported into a program to be
used
• The nextLine method reads all of the input until
the end of the line is found
• See Echo.java
• The details of object creation and class libraries are
discussed further in Chapter 3
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
//********************************************************************
// Echo.java Author: Lewis/Loftus
//
// Demonstrates the use of the nextLine method of the Scanner class
// to read a string from the user.
//********************************************************************
import java.util.Scanner;
public class Echo
{
//-----------------------------------------------------------------
// Reads a character string from the user and prints it.
//-----------------------------------------------------------------
public static void main(String[] args)
{
String message;
Scanner scan = new Scanner(System.in);
System.out.println("Enter a line of text:");
message = scan.nextLine();
System.out.println("You entered: "" + message + """);
}
}
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
//********************************************************************
// Echo.java Author: Lewis/Loftus
//
// Demonstrates the use of the nextLine method of the Scanner class
// to read a string from the user.
//********************************************************************
import java.util.Scanner;
public class Echo
{
//-----------------------------------------------------------------
// Reads a character string from the user and prints it.
//-----------------------------------------------------------------
public static void main(String[] args)
{
String message;
Scanner scan = new Scanner(System.in);
System.out.println("Enter a line of text:");
message = scan.nextLine();
System.out.println("You entered: "" + message + """);
}
}
Sample Run
Enter a line of text:
You want fries with that?
You entered: "You want fries with that?"
Input Tokens
• Unless specified otherwise, white space is used to
separate the elements (called tokens) of the input
• White space includes space characters, tabs, new
line characters
• The next method of the Scanner class reads the
next input token and returns it as a string
• Methods such as nextInt and nextDouble
read data of particular types
• See GasMileage.java
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
//********************************************************************
// GasMileage.java Author: Lewis/Loftus
//
// Demonstrates the use of the Scanner class to read numeric data.
//********************************************************************
import java.util.Scanner;
public class GasMileage
{
//-----------------------------------------------------------------
// Calculates fuel efficiency based on values entered by the
// user.
//-----------------------------------------------------------------
public static void main(String[] args)
{
int miles;
double gallons, mpg;
Scanner scan = new Scanner(System.in);
continue
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
continue
System.out.print("Enter the number of miles: ");
miles = scan.nextInt();
System.out.print("Enter the gallons of fuel used: ");
gallons = scan.nextDouble();
mpg = miles / gallons;
System.out.println("Miles Per Gallon: " + mpg);
}
}
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
continue
System.out.print ("Enter the number of miles: ");
miles = scan.nextInt();
System.out.print ("Enter the gallons of fuel used: ");
gallons = scan.nextDouble();
mpg = miles / gallons;
System.out.println("Miles Per Gallon: " + mpg);
}
}
Sample Run
Enter the number of miles: 328
Enter the gallons of fuel used: 11.2
Miles Per Gallon: 29.28571428571429
Creating Objects
• A variable holds either a primitive value or a
reference to an object
• A class name can be used as a type to declare an
object reference variable
String title;
• No object is created with this declaration
• An object reference variable holds the address of
an object
• The object itself must be created separately
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Creating Objects
• Generally, we use the new operator to create an
object
• Creating an object is called instantiation
• An object is an instance of a particular class
title = new String("Java Software Solutions");
This calls the String constructor, which is
a special method that sets up the object
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Invoking Methods
• We've seen that once an object has been
instantiated, we can use the dot operator to invoke
its methods
numChars = title.length()
• A method may return a value, which can be used in
an assignment or expression
• A method invocation can be thought of as asking an
object to perform a service
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
References
• Note that a primitive variable contains the value
itself, but an object variable contains the address of
the object
• An object reference can be thought of as a pointer
to the location of the object
• Rather than dealing with arbitrary addresses, we
often depict a reference graphically
"Steve Jobs"
name1
num1 38
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Assignment Revisited
• The act of assignment takes a copy of a value and
stores it in a variable
• For primitive types:
num1 38
num2 96
Before:
num2 = num1;
num1 38
num2 38
After:
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Reference Assignment
• For object references, assignment copies the
address:
name2 = name1;
name1
name2
Before:
"Steve Jobs"
"Steve Wozniak"
name1
name2
After:
"Steve Jobs"
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Aliases
• Two or more references that refer to the same
object are called aliases of each other
• That creates an interesting situation: one object
can be accessed using multiple reference variables
• Aliases can be useful, but should be managed
carefully
• Changing an object through one reference
changes it for all of its aliases, because there is
really only one object
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Garbage Collection
• When an object no longer has any valid references
to it, it can no longer be accessed by the program
• The object is useless, and therefore is called
garbage
• Java performs automatic garbage collection
periodically, returning an object's memory to the
system for future use
• In other languages, the programmer is responsible
for performing garbage collection
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
The String Class
• Because strings are so common, we don't have to
use the new operator to create a String object
title = "Java Software Solutions";
• This is special syntax that works only for strings
• Each string literal (enclosed in double quotes)
represents a String object
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
String Methods
• Once a String object has been created, neither
its value nor its length can be changed
• Therefore we say that an object of the String
class is immutable
• However, several methods of the String class
return new String objects that are modified
versions of the original
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
String Indexes
• It is occasionally helpful to refer to a particular
character within a string
• This can be done by specifying the character's
numeric index
• The indexes begin at zero in each string
• In the string "Hello", the character 'H' is at
index 0 and the 'o' is at index 4
• See StringMutation.java
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
//********************************************************************
// StringMutation.java Author: Lewis/Loftus
//
// Demonstrates the use of the String class and its methods.
//********************************************************************
public class StringMutation
{
//-----------------------------------------------------------------
// Prints a string and various mutations of it.
//-----------------------------------------------------------------
public static void main(String[] args)
{
String phrase = "Change is inevitable";
String mutation1, mutation2, mutation3, mutation4;
System.out.println("Original string: "" + phrase + """);
System.out.println("Length of string: " + phrase.length());
mutation1 = phrase.concat(", except from vending machines.");
mutation2 = mutation1.toUpperCase();
mutation3 = mutation2.replace('E', 'X');
mutation4 = mutation3.substring(3, 30);
continued
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
continued
// Print each mutated string
System.out.println("Mutation #1: " + mutation1);
System.out.println("Mutation #2: " + mutation2);
System.out.println("Mutation #3: " + mutation3);
System.out.println("Mutation #4: " + mutation4);
System.out.println("Mutated length: " + mutation4.length());
}
}
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
continued
// Print each mutated string
System.out.println ("Mutation #1: " + mutation1);
System.out.println ("Mutation #2: " + mutation2);
System.out.println ("Mutation #3: " + mutation3);
System.out.println ("Mutation #4: " + mutation4);
System.out.println("Mutated length: " + mutation4.length());
}
}
Output
Original string: "Change is inevitable"
Length of string: 20
Mutation #1: Change is inevitable, except from vending machines.
Mutation #2: CHANGE IS INEVITABLE, EXCEPT FROM VENDING MACHINES.
Mutation #3: CHANGX IS INXVITABLX, XXCXPT FROM VXNDING MACHINXS.
Mutation #4: NGX IS INXVITABLX, XXCXPT F
Mutated length: 27
Class Libraries
• A class library is a collection of classes that we can
use when developing programs
• The Java standard class library is part of any Java
development environment
• Its classes are not part of the Java language per se,
but we rely on them heavily
• Various classes we've already used (System ,
Scanner, String) are part of the Java standard
class library
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Packages
• For purposes of accessing them, classes in the
Java API are organized into packages
• These often overlap with specific APIs
• Examples:
Package
java.lang
java.applet
java.awt
javax.swing
java.net
java.util
javax.xml.parsers
Purpose
General support
Creating applets for the web
Graphics and graphical user interfaces
Additional graphics capabilities
Network communication
Utilities
XML document processing
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
The import Declaration
• When you want to use a class from a package, you
could use its fully qualified name
java.util.Scanner
• Or you can import the class, and then use just the
class name
import java.util.Scanner;
• To import all classes in a particular package, you
can use the * wildcard character
import java.util.*;
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
The import Declaration
• All classes of the java.lang package are
imported automatically into all programs
• It's as if all programs contain the following line:
import java.lang.*;
• That's why we didn't have to import the System or
String classes explicitly in earlier programs
• The Scanner class, on the other hand, is part of
the java.util package, and therefore must be
imported
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
The Random Class
• The Random class is part of the java.util
package
• It provides methods that generate pseudorandom
numbers
• See RandomNumbers.java
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
//********************************************************************
// RandomNumbers.java Author: Lewis/Loftus
//
// Demonstrates the creation of pseudo-random numbers using the
// Random class.
//********************************************************************
import java.util.Random;
public class RandomNumbers
{
//-----------------------------------------------------------------
// Generates random numbers in various ranges.
//-----------------------------------------------------------------
public static void main(String[] args)
{
Random generator = new Random();
int num1;
float num2;
num1 = generator.nextInt();
System.out.println("A random integer: " + num1);
num1 = generator.nextInt(10);
System.out.println("From 0 to 9: " + num1);
continued
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
continued
num1 = generator.nextInt(10) + 1;
System.out.println("From 1 to 10: " + num1);
num1 = generator.nextInt(15) + 20;
System.out.println("From 20 to 34: " + num1);
num1 = generator.nextInt(20) - 10;
System.out.println("From -10 to 9: " + num1);
num2 = generator.nextFloat();
System.out.println("A random float (between 0-1): " + num2);
num2 = generator.nextFloat() * 6; // 0.0 to 5.999999
num1 = (int)num2 + 1;
System.out.println("From 1 to 6: " + num1);
}
}
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
continued
num1 = generator.nextInt(10) + 1;
System.out.println ("From 1 to 10: " + num1);
num1 = generator.nextInt(15) + 20;
System.out.println ("From 20 to 34: " + num1);
num1 = generator.nextInt(20) - 10;
System.out.println ("From -10 to 9: " + num1);
num2 = generator.nextFloat();
System.out.println("A random float (between 0-1): " + num2);
num2 = generator.nextFloat() * 6; // 0.0 to 5.999999
num1 = (int)num2 + 1;
System.out.println("From 1 to 6: " + num1);
}
}
Sample Run
A random integer: 672981683
From 0 to 9: 0
From 1 to 10: 3
From 20 to 34: 30
From -10 to 9: -4
A random float (between 0-1): 0.18538326
From 1 to 6: 3
Quick Check
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Given a Random object named gen, what range of
values are produced by the following expressions?
gen.nextInt(25)
gen.nextInt(6) + 1
gen.nextInt(100) + 10
gen.nextInt(50) + 100
gen.nextInt(10) – 5
gen.nextInt(22) + 12
Quick Check
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Given a Random object named gen, what range of
values are produced by the following expressions?
gen.nextInt(25)
gen.nextInt(6) + 1
gen.nextInt(100) + 10
gen.nextInt(50) + 100
gen.nextInt(10) – 5
gen.nextInt(22) + 12
Range
0 to 24
1 to 6
10 to 109
100 to 149
-5 to 4
12 to 33
The Math Class
• The Math class is part of the java.lang package
• The Math class contains methods that perform
various mathematical functions
• These include:
– absolute value
– square root
– exponentiation
– trigonometric functions
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
The Math Class
• The methods of the Math class are static methods
(also called class methods)
• Static methods are invoked through the class name
– no object of the Math class is needed
value = Math.cos(90) + Math.sqrt(delta);
• We discuss static methods further in Chapter 7
• See Quadratic.java
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
//********************************************************************
// Quadratic.java Author: Lewis/Loftus
//
// Demonstrates the use of the Math class to perform a calculation
// based on user input.
//********************************************************************
import java.util.Scanner;
public class Quadratic
{
//-----------------------------------------------------------------
// Determines the roots of a quadratic equation.
//-----------------------------------------------------------------
public static void main(String[] args)
{
int a, b, c; // ax^2 + bx + c
double discriminant, root1, root2;
Scanner scan = new Scanner(System.in);
System.out.print("Enter the coefficient of x squared: ");
a = scan.nextInt();
continued
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
continued
System.out.print("Enter the coefficient of x: ");
b = scan.nextInt();
System.out.print("Enter the constant: ");
c = scan.nextInt();
// Use the quadratic formula to compute the roots.
// Assumes a positive discriminant.
discriminant = Math.pow(b, 2) - (4 * a * c);
root1 = ((-1 * b) + Math.sqrt(discriminant)) / (2 * a);
root2 = ((-1 * b) - Math.sqrt(discriminant)) / (2 * a);
System.out.println("Root #1: " + root1);
System.out.println("Root #2: " + root2);
}
}
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
continued
System.out.print ("Enter the coefficient of x: ");
b = scan.nextInt();
System.out.print ("Enter the constant: ");
c = scan.nextInt();
// Use the quadratic formula to compute the roots.
// Assumes a positive discriminant.
discriminant = Math.pow(b, 2) - (4 * a * c);
root1 = ((-1 * b) + Math.sqrt(discriminant)) / (2 * a);
root2 = ((-1 * b) - Math.sqrt(discriminant)) / (2 * a);
System.out.println("Root #1: " + root1);
System.out.println("Root #2: " + root2);
}
}
Sample Run
Enter the coefficient of x squared: 3
Enter the coefficient of x: 8
Enter the constant: 4
Root #1: -0.6666666666666666
Root #2: -2.0
Formatting Output
• It is often necessary to format output values in
certain ways so that they can be presented properly
• The Java standard class library contains classes
that provide formatting capabilities
• The NumberFormat class allows you to format
values as currency or percentages
• The DecimalFormat class allows you to format
values based on a pattern
• Both are part of the java.text package
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Formatting Output
• The NumberFormat class has static methods that
return a formatter object
getCurrencyInstance()
getPercentInstance()
• Each formatter object has a method called
format that returns a string with the specified
information in the appropriate format
• See Purchase.java
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
//********************************************************************
// Purchase.java Author: Lewis/Loftus
//
// Demonstrates the use of the NumberFormat class to format output.
//********************************************************************
import java.util.Scanner;
import java.text.NumberFormat;
public class Purchase
{
//-----------------------------------------------------------------
// Calculates the final price of a purchased item using values
// entered by the user.
//-----------------------------------------------------------------
public static void main(String[] args)
{
final double TAX_RATE = 0.06; // 6% sales tax
int quantity;
double subtotal, tax, totalCost, unitPrice;
Scanner scan = new Scanner(System.in);
continued
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
continued
NumberFormat fmt1 = NumberFormat.getCurrencyInstance();
NumberFormat fmt2 = NumberFormat.getPercentInstance();
System.out.print("Enter the quantity: ");
quantity = scan.nextInt();
System.out.print("Enter the unit price: ");
unitPrice = scan.nextDouble();
subtotal = quantity * unitPrice;
tax = subtotal * TAX_RATE;
totalCost = subtotal + tax;
// Print output with appropriate formatting
System.out.println("Subtotal: " + fmt1.format(subtotal));
System.out.println("Tax: " + fmt1.format(tax) + " at "
+ fmt2.format(TAX_RATE));
System.out.println("Total: " + fmt1.format(totalCost));
}
}
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
continued
NumberFormat fmt1 = NumberFormat.getCurrencyInstance();
NumberFormat fmt2 = NumberFormat.getPercentInstance();
System.out.print ("Enter the quantity: ");
quantity = scan.nextInt();
System.out.print("Enter the unit price: ");
unitPrice = scan.nextDouble();
subtotal = quantity * unitPrice;
tax = subtotal * TAX_RATE;
totalCost = subtotal + tax;
// Print output with appropriate formatting
System.out.println("Subtotal: " + fmt1.format(subtotal));
System.out.println("Tax: " + fmt1.format(tax) + " at "
+ fmt2.format(TAX_RATE));
System.out.println("Total: " + fmt1.format(totalCost));
}
}
Sample Run
Enter the quantity: 5
Enter the unit price: 3.87
Subtotal: $19.35
Tax: $1.16 at 6%
Total: $20.51
Formatting Output
• The DecimalFormat class can be used to format
a floating point value in various ways
• For example, you can specify that the number
should be truncated to three decimal places
• The constructor of the DecimalFormat class
takes a string that represents a pattern for the
formatted number
• See CircleStats.java
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
//********************************************************************
// CircleStats.java Author: Lewis/Loftus
//
// Demonstrates the formatting of decimal values using the
// DecimalFormat class.
//********************************************************************
import java.util.Scanner;
import java.text.DecimalFormat;
public class CircleStats
{
//-----------------------------------------------------------------
// Calculates the area and circumference of a circle given its
// radius.
//-----------------------------------------------------------------
public static void main(String[] args)
{
int radius;
double area, circumference;
Scanner scan = new Scanner(System.in);
continued
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
continued
System.out.print ("Enter the circle's radius: ");
radius = scan.nextInt();
area = Math.PI * Math.pow(radius, 2);
circumference = 2 * Math.PI * radius;
// Round the output to three decimal places
DecimalFormat fmt = new DecimalFormat ("0.###");
System.out.println ("The circle's area: " + fmt.format(area));
System.out.println ("The circle's circumference: "
+ fmt.format(circumference));
}
}
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
continued
System.out.print ("Enter the circle's radius: ");
radius = scan.nextInt();
area = Math.PI * Math.pow(radius, 2);
circumference = 2 * Math.PI * radius;
// Round the output to three decimal places
DecimalFormat fmt = new DecimalFormat("0.###");
System.out.println("The circle's area: " + fmt.format(area));
System.out.println("The circle's circumference: "
+ fmt.format(circumference));
}
}
Sample Run
Enter the circle's radius: 5
The circle's area: 78.54
The circle's circumference: 31.416
Enumerated Types
• Java allows you to define an enumerated type,
which can then be used to declare variables
• An enumerated type declaration lists all possible
values for a variable of that type
• The values are identifiers of your own choosing
• The following declaration creates an enumerated
type called Season
enum Season {winter, spring, summer, fall};
• Any number of values can be listed
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Enumerated Types
• Once a type is defined, a variable of that type can
be declared:
Season time;
• And it can be assigned a value:
time = Season.fall;
• The values are referenced through the name of the
type
• Enumerated types are type-safe – you cannot
assign any value other than those listed
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Ordinal Values
• Internally, each value of an enumerated type is
stored as an integer, called its ordinal value
• The first value in an enumerated type has an
ordinal value of zero, the second one, and so on
• However, you cannot assign a numeric value to an
enumerated type, even if it corresponds to a valid
ordinal value
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Enumerated Types
• The declaration of an enumerated type is a special
type of class, and each variable of that type is an
object
• The ordinal method returns the ordinal value of
the object
• The name method returns the name of the identifier
corresponding to the object's value
• See IceCream.java
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
//********************************************************************
// IceCream.java Author: Lewis/Loftus
//
// Demonstrates the use of enumerated types.
//********************************************************************
public class IceCream
{
enum Flavor {vanilla, chocolate, strawberry, fudgeRipple, coffee,
rockyRoad, mintChocolateChip, cookieDough}
//-----------------------------------------------------------------
// Creates and uses variables of the Flavor type.
//-----------------------------------------------------------------
public static void main (String[] args)
{
Flavor cone1, cone2, cone3;
cone1 = Flavor.rockyRoad;
cone2 = Flavor.chocolate;
System.out.println("cone1 value: " + cone1);
System.out.println("cone1 ordinal: " + cone1.ordinal());
System.out.println("cone1 name: " + cone1.name());
continued
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
continued
System.out.println();
System.out.println("cone2 value: " + cone2);
System.out.println("cone2 ordinal: " + cone2.ordinal());
System.out.println("cone2 name: " + cone2.name());
cone3 = cone1;
System.out.println();
System.out.println("cone3 value: " + cone3);
System.out.println("cone3 ordinal: " + cone3.ordinal());
System.out.println("cone3 name: " + cone3.name());
}
}
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
continued
System.out.println ();
System.out.println ("cone2 value: " + cone2);
System.out.println ("cone2 ordinal: " + cone2.ordinal());
System.out.println ("cone2 name: " + cone2.name());
cone3 = cone1;
System.out.println ();
System.out.println ("cone3 value: " + cone3);
System.out.println ("cone3 ordinal: " + cone3.ordinal());
System.out.println("cone3 name: " + cone3.name());
}
}
Output
cone1 value: rockyRoad
cone1 ordinal: 5
cone1 name: rockyRoad
cone2 value: chocolate
cone2 ordinal: 1
cone2 name: chocolate
cone3 value: rockyRoad
cone3 ordinal: 5
cone3 name: rockyRoad
Wrapper Classes
• The java.lang package contains wrapper
classes that correspond to each primitive type:
Primitive Type Wrapper Class
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
Wrapper Classes
• The following declaration creates an Integer
object which represents the integer 40 as an object
Integer age = new Integer(40);
• An object of a wrapper class can be used in any
situation where a primitive value will not suffice
• For example, some objects serve as containers of
other objects
• Primitive values could not be stored in such
containers, but wrapper objects could be
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Wrapper Classes
• Wrapper classes also contain static methods that
help manage the associated type
• For example, the Integer class contains a
method to convert an integer stored in a String
to an int value:
num = Integer.parseInt(str);
• They often contain useful constants as well
• For example, the Integer class contains
MIN_VALUE and MAX_VALUE which hold the
smallest and largest int values
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Autoboxing
• Autoboxing is the automatic conversion of a
primitive value to a corresponding wrapper object:
Integer obj;
int num = 42;
obj = num;
• The assignment creates the appropriate Integer
object
• The reverse conversion (called unboxing) also
occurs automatically as needed
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Quick Check
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Are the following assignments valid? Explain.
Double value = 15.75;
Character ch = new Character('T');
char myChar = ch;
Quick Check
Slides adapted from Java Software Solutions Foundations of Program Design 8th , John
Lewis • William Loftus
Are the following assignments valid? Explain.
Double value = 15.75;
Character ch = new Character('T');
char myChar = ch;
Yes. The double literal is autoboxed into a Double object.
Yes, the char in the object is unboxed before the assignment.
introduction.pptx

More Related Content

Similar to introduction.pptx

Java (Part 2) unit 1
Java (Part 2) unit 1Java (Part 2) unit 1
Java (Part 2) unit 1SURBHI SAROHA
 
Core java programming tutorial - Brainsmartlabs
Core java programming tutorial - BrainsmartlabsCore java programming tutorial - Brainsmartlabs
Core java programming tutorial - Brainsmartlabsbrainsmartlabsedu
 
JAVA PROGRAMMING-Unit I - Final PPT.pptx
JAVA PROGRAMMING-Unit I - Final PPT.pptxJAVA PROGRAMMING-Unit I - Final PPT.pptx
JAVA PROGRAMMING-Unit I - Final PPT.pptxSuganthiDPSGRKCW
 
JAVA object oriented programming (oop).ppt
JAVA object oriented programming (oop).pptJAVA object oriented programming (oop).ppt
JAVA object oriented programming (oop).pptAliyaJav
 
Java fundamentals
Java fundamentalsJava fundamentals
Java fundamentalsOm Ganesh
 
Demo Lecture 01 Notes.pptx by Sabki Kaksha
Demo Lecture 01 Notes.pptx by Sabki KakshaDemo Lecture 01 Notes.pptx by Sabki Kaksha
Demo Lecture 01 Notes.pptx by Sabki KakshaGandhiSarthak
 
Demo Lecture 01 Notes paid , course notes
Demo Lecture 01 Notes paid , course notesDemo Lecture 01 Notes paid , course notes
Demo Lecture 01 Notes paid , course notesGandhiSarthak
 
OOP - Lecture02 - Introduction to Java.pptx
OOP - Lecture02 - Introduction to Java.pptxOOP - Lecture02 - Introduction to Java.pptx
OOP - Lecture02 - Introduction to Java.pptxumairmushtaq48
 
OOP with Java
OOP with JavaOOP with Java
OOP with JavaOmegaHub
 
Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Dastan Kamaran
 
Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Dastan Kamaran
 
APP_All Five Unit PPT_NOTES.pptx
APP_All Five Unit PPT_NOTES.pptxAPP_All Five Unit PPT_NOTES.pptx
APP_All Five Unit PPT_NOTES.pptxHaniyaMumtaj1
 
Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?NIIT India
 

Similar to introduction.pptx (20)

Java (Part 2) unit 1
Java (Part 2) unit 1Java (Part 2) unit 1
Java (Part 2) unit 1
 
Core java programming tutorial - Brainsmartlabs
Core java programming tutorial - BrainsmartlabsCore java programming tutorial - Brainsmartlabs
Core java programming tutorial - Brainsmartlabs
 
JAVA PROGRAMMING-Unit I - Final PPT.pptx
JAVA PROGRAMMING-Unit I - Final PPT.pptxJAVA PROGRAMMING-Unit I - Final PPT.pptx
JAVA PROGRAMMING-Unit I - Final PPT.pptx
 
Java introduction
Java introductionJava introduction
Java introduction
 
JAVA INTRODUCTION - 1
JAVA INTRODUCTION - 1JAVA INTRODUCTION - 1
JAVA INTRODUCTION - 1
 
JAVA object oriented programming (oop).ppt
JAVA object oriented programming (oop).pptJAVA object oriented programming (oop).ppt
JAVA object oriented programming (oop).ppt
 
unit1.pptx
unit1.pptxunit1.pptx
unit1.pptx
 
Java fundamentals
Java fundamentalsJava fundamentals
Java fundamentals
 
Demo Lecture 01 Notes.pptx by Sabki Kaksha
Demo Lecture 01 Notes.pptx by Sabki KakshaDemo Lecture 01 Notes.pptx by Sabki Kaksha
Demo Lecture 01 Notes.pptx by Sabki Kaksha
 
Demo Lecture 01 Notes paid , course notes
Demo Lecture 01 Notes paid , course notesDemo Lecture 01 Notes paid , course notes
Demo Lecture 01 Notes paid , course notes
 
OOP - Lecture02 - Introduction to Java.pptx
OOP - Lecture02 - Introduction to Java.pptxOOP - Lecture02 - Introduction to Java.pptx
OOP - Lecture02 - Introduction to Java.pptx
 
OOP with Java
OOP with JavaOOP with Java
OOP with Java
 
Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)
 
Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)
 
APP_All Five Unit PPT_NOTES.pptx
APP_All Five Unit PPT_NOTES.pptxAPP_All Five Unit PPT_NOTES.pptx
APP_All Five Unit PPT_NOTES.pptx
 
Chap1java5th
Chap1java5thChap1java5th
Chap1java5th
 
Introduction to Spring & Spring BootFramework
Introduction to Spring  & Spring BootFrameworkIntroduction to Spring  & Spring BootFramework
Introduction to Spring & Spring BootFramework
 
Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?
 
Class_01.pptx
Class_01.pptxClass_01.pptx
Class_01.pptx
 
Java
JavaJava
Java
 

Recently uploaded

Major project report on Tata Motors and its marketing strategies
Major project report on Tata Motors and its marketing strategiesMajor project report on Tata Motors and its marketing strategies
Major project report on Tata Motors and its marketing strategiesAmanpreetKaur157993
 
How To Create Editable Tree View in Odoo 17
How To Create Editable Tree View in Odoo 17How To Create Editable Tree View in Odoo 17
How To Create Editable Tree View in Odoo 17Celine George
 
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文中 央社
 
Spring gala 2024 photo slideshow - Celebrating School-Community Partnerships
Spring gala 2024 photo slideshow - Celebrating School-Community PartnershipsSpring gala 2024 photo slideshow - Celebrating School-Community Partnerships
Spring gala 2024 photo slideshow - Celebrating School-Community Partnershipsexpandedwebsite
 
OSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & SystemsOSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & SystemsSandeep D Chaudhary
 
Personalisation of Education by AI and Big Data - Lourdes Guàrdia
Personalisation of Education by AI and Big Data - Lourdes GuàrdiaPersonalisation of Education by AI and Big Data - Lourdes Guàrdia
Personalisation of Education by AI and Big Data - Lourdes GuàrdiaEADTU
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...Nguyen Thanh Tu Collection
 
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...EADTU
 
MuleSoft Integration with AWS Textract | Calling AWS Textract API |AWS - Clou...
MuleSoft Integration with AWS Textract | Calling AWS Textract API |AWS - Clou...MuleSoft Integration with AWS Textract | Calling AWS Textract API |AWS - Clou...
MuleSoft Integration with AWS Textract | Calling AWS Textract API |AWS - Clou...MysoreMuleSoftMeetup
 
UChicago CMSC 23320 - The Best Commit Messages of 2024
UChicago CMSC 23320 - The Best Commit Messages of 2024UChicago CMSC 23320 - The Best Commit Messages of 2024
UChicago CMSC 23320 - The Best Commit Messages of 2024Borja Sotomayor
 
SPLICE Working Group: Reusable Code Examples
SPLICE Working Group:Reusable Code ExamplesSPLICE Working Group:Reusable Code Examples
SPLICE Working Group: Reusable Code ExamplesPeter Brusilovsky
 
Graduate Outcomes Presentation Slides - English (v3).pptx
Graduate Outcomes Presentation Slides - English (v3).pptxGraduate Outcomes Presentation Slides - English (v3).pptx
Graduate Outcomes Presentation Slides - English (v3).pptxneillewis46
 
The Story of Village Palampur Class 9 Free Study Material PDF
The Story of Village Palampur Class 9 Free Study Material PDFThe Story of Village Palampur Class 9 Free Study Material PDF
The Story of Village Palampur Class 9 Free Study Material PDFVivekanand Anglo Vedic Academy
 
DEMONSTRATION LESSON IN ENGLISH 4 MATATAG CURRICULUM
DEMONSTRATION LESSON IN ENGLISH 4 MATATAG CURRICULUMDEMONSTRATION LESSON IN ENGLISH 4 MATATAG CURRICULUM
DEMONSTRATION LESSON IN ENGLISH 4 MATATAG CURRICULUMELOISARIVERA8
 
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjj
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjjStl Algorithms in C++ jjjjjjjjjjjjjjjjjj
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjjMohammed Sikander
 
SURVEY I created for uni project research
SURVEY I created for uni project researchSURVEY I created for uni project research
SURVEY I created for uni project researchCaitlinCummins3
 
Trauma-Informed Leadership - Five Practical Principles
Trauma-Informed Leadership - Five Practical PrinciplesTrauma-Informed Leadership - Five Practical Principles
Trauma-Informed Leadership - Five Practical PrinciplesPooky Knightsmith
 

Recently uploaded (20)

Major project report on Tata Motors and its marketing strategies
Major project report on Tata Motors and its marketing strategiesMajor project report on Tata Motors and its marketing strategies
Major project report on Tata Motors and its marketing strategies
 
How To Create Editable Tree View in Odoo 17
How To Create Editable Tree View in Odoo 17How To Create Editable Tree View in Odoo 17
How To Create Editable Tree View in Odoo 17
 
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
 
Spring gala 2024 photo slideshow - Celebrating School-Community Partnerships
Spring gala 2024 photo slideshow - Celebrating School-Community PartnershipsSpring gala 2024 photo slideshow - Celebrating School-Community Partnerships
Spring gala 2024 photo slideshow - Celebrating School-Community Partnerships
 
OSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & SystemsOSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & Systems
 
VAMOS CUIDAR DO NOSSO PLANETA! .
VAMOS CUIDAR DO NOSSO PLANETA!                    .VAMOS CUIDAR DO NOSSO PLANETA!                    .
VAMOS CUIDAR DO NOSSO PLANETA! .
 
Personalisation of Education by AI and Big Data - Lourdes Guàrdia
Personalisation of Education by AI and Big Data - Lourdes GuàrdiaPersonalisation of Education by AI and Big Data - Lourdes Guàrdia
Personalisation of Education by AI and Big Data - Lourdes Guàrdia
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
 
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
 
MuleSoft Integration with AWS Textract | Calling AWS Textract API |AWS - Clou...
MuleSoft Integration with AWS Textract | Calling AWS Textract API |AWS - Clou...MuleSoft Integration with AWS Textract | Calling AWS Textract API |AWS - Clou...
MuleSoft Integration with AWS Textract | Calling AWS Textract API |AWS - Clou...
 
UChicago CMSC 23320 - The Best Commit Messages of 2024
UChicago CMSC 23320 - The Best Commit Messages of 2024UChicago CMSC 23320 - The Best Commit Messages of 2024
UChicago CMSC 23320 - The Best Commit Messages of 2024
 
SPLICE Working Group: Reusable Code Examples
SPLICE Working Group:Reusable Code ExamplesSPLICE Working Group:Reusable Code Examples
SPLICE Working Group: Reusable Code Examples
 
Graduate Outcomes Presentation Slides - English (v3).pptx
Graduate Outcomes Presentation Slides - English (v3).pptxGraduate Outcomes Presentation Slides - English (v3).pptx
Graduate Outcomes Presentation Slides - English (v3).pptx
 
The Story of Village Palampur Class 9 Free Study Material PDF
The Story of Village Palampur Class 9 Free Study Material PDFThe Story of Village Palampur Class 9 Free Study Material PDF
The Story of Village Palampur Class 9 Free Study Material PDF
 
DEMONSTRATION LESSON IN ENGLISH 4 MATATAG CURRICULUM
DEMONSTRATION LESSON IN ENGLISH 4 MATATAG CURRICULUMDEMONSTRATION LESSON IN ENGLISH 4 MATATAG CURRICULUM
DEMONSTRATION LESSON IN ENGLISH 4 MATATAG CURRICULUM
 
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjj
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjjStl Algorithms in C++ jjjjjjjjjjjjjjjjjj
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjj
 
Supporting Newcomer Multilingual Learners
Supporting Newcomer  Multilingual LearnersSupporting Newcomer  Multilingual Learners
Supporting Newcomer Multilingual Learners
 
SURVEY I created for uni project research
SURVEY I created for uni project researchSURVEY I created for uni project research
SURVEY I created for uni project research
 
Mattingly "AI & Prompt Design: Named Entity Recognition"
Mattingly "AI & Prompt Design: Named Entity Recognition"Mattingly "AI & Prompt Design: Named Entity Recognition"
Mattingly "AI & Prompt Design: Named Entity Recognition"
 
Trauma-Informed Leadership - Five Practical Principles
Trauma-Informed Leadership - Five Practical PrinciplesTrauma-Informed Leadership - Five Practical Principles
Trauma-Informed Leadership - Five Practical Principles
 

introduction.pptx

  • 1. Programming Techniques(3) Dr: Ahmad Abdallah Semester Number:1 Academic year:2021-2022
  • 2. Course Information • Books Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 3. Course Informations • Grades Final exam 50 Mid-term exam 20 Section Work 10 Practical Exam 10 Assignments 10
  • 4. What is programing and program development life cycle ? • Programing is the process of problem solving • Step 1:analyze the problem - understand the overall problem - Define problem requirements • Does a program require user interaction – If yes, what is the input? • What is the expected output? - Design steps (algorithm) to solve the problem Algorithm: step by step problem-solving process. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 5. • Step 2: implement the algorithm – implement the algorithm in code – Verify that the algorithm works • Step 3:maintenance – Use and modify the program if the problem domain changes – If the problem is complex, divided it to sub-problems – Analyze each sub-problem as above Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus What is programing and program development life cycle ?
  • 6. Example • Write a program to find area of rectangle? The area of rectangle is given by the following formula: area=rect length* rect width Input Rectangle length, Rectangle width Process area=rect length* rect width Output Print out the area. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 7. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 8. Java • The Java programming language was created by Sun Microsystems, Inc. • It was introduced in 1995 and it's popularity has grown quickly since • A programming language specifies the words and symbols that we can use to write a program • A programming language employs a set of rules that dictate how the words and symbols can be put together to form valid program statements Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 9. Java Program Structure • In the Java programming language: – A program is made up of one or more classes – A class contains one or more methods – A method contains program statements • These terms will be explored in detail throughout the course • A Java application always contains a method called main • See Lincoln.java Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 10. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // Lincoln.java Author: Lewis/Loftus // // Demonstrates the basic structure of a Java application. //******************************************************************** public class Lincoln { //----------------------------------------------------------------- // Prints a presidential quote. //----------------------------------------------------------------- public static void main (String[] args) { System.out.println ("A quote by Abraham Lincoln:"); System.out.println ("Whatever you are, be a good one."); } }
  • 11. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // Lincoln.java Author: Lewis/Loftus // // Demonstrates the basic structure of a Java application. //******************************************************************** public class Lincoln { //----------------------------------------------------------------- // Prints a presidential quote. //----------------------------------------------------------------- public static void main (String[] args) { System.out.println ("A quote by Abraham Lincoln:"); System.out.println ("Whatever you are, be a good one."); } } Output A quote by Abraham Lincoln: Whatever you are, be a good one.
  • 12. Java Program Structure public class MyProgram { } // comments about the class class header class body Comments can be placed almost anywhere Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 13. Java Program Structure public class MyProgram { } // comments about the class public static void main (String[] args) { } // comments about the method method header method body Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 14. Comments • Comments should be included to explain the purpose of the program and describe processing steps • They do not affect how a program works • Java comments can take three forms: // this comment runs to the end of the line /* this comment runs to the terminating symbol, even across line breaks */ /** this is a javadoc comment */ Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 15. Identifiers • Identifiers are the "words" in a program • A Java identifier can be made up of letters, digits, the underscore character ( _ ), and the dollar sign • Identifiers cannot begin with a digit • Java is case sensitive: Total, total, and TOTAL are different identifiers • By convention, programmers use different case styles for different types of identifiers, such as – title case for class names - Lincoln – upper case for constants - MAXIMUM Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 16. Identifiers • Sometimes the programmer chooses the identifier(such as Lincoln) • Sometimes we are using another programmer's code, so we use the identifiers that he or she chose (such as println) • Often we use special identifiers called reserved words that already have a predefined meaning in the language • A reserved word cannot be used in any other way Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 17. Reserved Words • The Java reserved words: abstract assert boolean break byte case catch char class const continue default do double else enum extends false final finally float for goto if implements import instanceof int interface long native new null package private protected public return short static strictfp super switch synchronized this throw throws transient true try void volatile while Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 18. Quick Check Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus Which of the following are valid Java identifiers? grade quizGrade NetworkConnection frame2 3rdTestScore MAXIMUM MIN_CAPACITY student# Shelves1&2
  • 19. Program Development • The mechanics of developing a program include several activities: – writing the program in a specific programming language (such as Java) – translating the program into a form that the computer can execute – investigating and fixing various types of errors that can occur • Software tools can be used to help with all parts of this process Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 20. Programming Languages • Each type of CPU executes only a particular machine language • A program must be translated into machine language before it can be executed • A compiler is a software tool which translates source code into a specific target language • Sometimes, that target language is the machine language for a particular CPU type • The Java approach is somewhat different Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 21. Java Translation • The Java compiler translates Java source code into a special representation called bytecode • Java bytecode is not the machine language for any traditional CPU • Bytecode is executed by the Java Virtual Machine (JVM) • Therefore Java bytecode is not tied to any particular machine • Java is considered to be architecture-neutral Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 22. Java Translation Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 23. Development Environments • There are many programs that support the development of Java software, including: – Java Development Kit (JDK) – Eclipse – NetBeans – BlueJ – jGRASP • Though the details of these environments differ, the basic compilation and execution process is essentially the same Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 24. Syntax and Semantics • The syntax rules of a language define how we can put together symbols, reserved words, and identifiers to make a valid program • The semantics of a program statement define what that statement means (its purpose or role in a program) • A program that is syntactically correct is not necessarily logically (semantically) correct • A program will always do what we tell it to do, not what we meant to tell it to do Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 25. Errors • A program can have three types of errors • The compiler will find syntax errors and other basic problems (compile-time errors) – If compile-time errors exist, an executable version of the program is not created • A problem can occur during program execution, such as trying to divide by zero, which causes a program to terminate abnormally (run-time errors) • A program may run, but produce incorrect results, perhaps using an incorrect formula (logical errors) Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 26. Basic Program Development errors? errors? Edit and save program Compile program Execute program and evaluate results Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 27. Outline What is programing and program development life cycle ? The Java Programming Language Program Development Object-Oriented Programming Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 28. Object-Oriented Programming • Java is an object-oriented programming language • As the term implies, an object is a fundamental entity in a Java program • Objects can be used effectively to represent real- world entities • For instance, an object might represent a particular employee in a company • Each employee object handles the processing and data management related to that employee Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 29. 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 account number and its current balance • The behaviors associated with a bank account include the ability to make deposits and withdrawals • Note that the behavior of an object might change its state Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 30. Classes • An object is defined by a class • A class is the blueprint of an object • The class uses methods to define the behaviors of the object • The class that contains the main method of a Java program represents the entire program • A class represents a concept, and an object represents the embodiment of that concept • Multiple objects can be created from the same class Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 31. Class = Blueprint • One blueprint to create several similar, but different, houses: Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 32. Objects and Classes Bank Account A class (the concept) John’s Bank Account Balance: $5,257 An object (the realization) Bill’s Bank Account Balance: $1,245,069 Mary’s Bank Account Balance: $16,833 Multiple objects from the same class Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 33. The print Method • The System.out object provides another service as well • The print method is similar to the println method, except that it does not advance to the next line • Therefore anything printed after a print statement will appear on the same line • See Countdown.java Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 34. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // Countdown.java Author: Lewis/Loftus // // Demonstrates the difference between print and println. //******************************************************************** public class Countdown { //----------------------------------------------------------------- // Prints two lines of output representing a rocket countdown. //----------------------------------------------------------------- public static void main(String[] args) { System.out.print("Three... "); System.out.print("Two... "); System.out.print("One... "); System.out.print("Zero... "); System.out.println("Liftoff!"); // appears on first output line System.out.println("Houston, we have a problem."); } }
  • 35. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // Countdown.java Author: Lewis/Loftus // // Demonstrates the difference between print and println. //******************************************************************** public class Countdown { //----------------------------------------------------------------- // Prints two lines of output representing a rocket countdown. //----------------------------------------------------------------- public static void main(String[] args) { System.out.print("Three... "); System.out.print("Two... "); System.out.print("One... "); System.out.print("Zero... "); System.out.println("Liftoff!"); // appears on first output line System.out.println("Houston, we have a problem."); } } Output Three... Two... One... Zero... Liftoff! Houston, we have a problem.
  • 36. String Concatenation • The string concatenation operator (+) is used to append one string to the end of another "Peanut butter " + "and jelly" • It can also be used to append a number to a string • A string literal cannot be broken across two lines in a program • See Facts.java Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 37. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // Facts.java Author: Lewis/Loftus // // Demonstrates the use of the string concatenation operator and the // automatic conversion of an integer to a string. //******************************************************************** public class Facts { //----------------------------------------------------------------- // Prints various facts. //----------------------------------------------------------------- public static void main(String[] args) { // Strings can be concatenated into one long string System.out.println("We present the following facts for your " + "extracurricular edification:"); System.out.println(); // A string can contain numeric digits System.out.println("Letters in the Hawaiian alphabet: 12"); continue
  • 38. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus continue // A numeric value can be concatenated to a string System.out.println("Dialing code for Antarctica: " + 672); System.out.println("Year in which Leonardo da Vinci invented " + "the parachute: " + 1515); System.out.println("Speed of ketchup: " + 40 + " km per year"); } }
  • 39. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus continue // A numeric value can be concatenated to a string System.out.println ("Dialing code for Antarctica: " + 672); System.out.println ("Year in which Leonardo da Vinci invented " + "the parachute: " + 1515); System.out.println("Speed of ketchup: " + 40 + " km per year"); } } Output We present the following facts for your extracurricular edification: Letters in the Hawaiian alphabet: 12 Dialing code for Antarctica: 672 Year in which Leonardo da Vinci invented the parachute: 1515 Speed of ketchup: 40 km per year
  • 40. String Concatenation • The + operator is also used for arithmetic addition • The function that it performs depends on the type of the information on which it operates • If both operands are strings, or if one is a string and one is a number, it performs string concatenation • If both operands are numeric, it adds them • The + operator is evaluated left to right, but parentheses can be used to force the order • See Addition.java Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 41. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // Addition.java Author: Lewis/Loftus // // Demonstrates the difference between the addition and string // concatenation operators. //******************************************************************** public class Addition { //----------------------------------------------------------------- // Concatenates and adds two numbers and prints the results. //----------------------------------------------------------------- public static void main(String[] args) { System.out.println("24 and 45 concatenated: " + 24 + 45); System.out.println("24 and 45 added: " + (24 + 45)); } }
  • 42. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // Addition.java Author: Lewis/Loftus // // Demonstrates the difference between the addition and string // concatenation operators. //******************************************************************** public class Addition { //----------------------------------------------------------------- // Concatenates and adds two numbers and prints the results. //----------------------------------------------------------------- public static void main(String[] args) { System.out.println("24 and 45 concatenated: " + 24 + 45); System.out.println("24 and 45 added: " + (24 + 45)); } } Output 24 and 45 concatenated: 2445 24 and 45 added: 69
  • 43. Variables • A variable is a name for a location in memory that holds a value • A variable declaration specifies the variable's name and the type of information that it will hold int total; int count, temp, result; Multiple variables can be created in one declaration data type variable name Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 44. Variable Initialization • A variable can be given an initial value in the declaration int sum = 0; int base = 32, max = 149; Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus • When a variable is referenced in a program, its current value is used • See PianoKeys.java
  • 45. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // PianoKeys.java Author: Lewis/Loftus // // Demonstrates the declaration, initialization, and use of an // integer variable. //******************************************************************** public class PianoKeys { //----------------------------------------------------------------- // Prints the number of keys on a piano. //----------------------------------------------------------------- public static void main(String[] args) { int keys = 88; System.out.println("A piano has " + keys + " keys."); } }
  • 46. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // PianoKeys.java Author: Lewis/Loftus // // Demonstrates the declaration, initialization, and use of an // integer variable. //******************************************************************** public class PianoKeys { //----------------------------------------------------------------- // Prints the number of keys on a piano. //----------------------------------------------------------------- public static void main(String[] args) { int keys = 88; System.out.println("A piano has " + keys + " keys."); } } Output A piano has 88 keys.
  • 47. Assignment • An assignment statement changes the value of a variable • The assignment operator is the = sign total = 55; Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus • The value that was in total is overwritten • You can only assign a value to a variable that is consistent with the variable's declared type • See Geometry.java
  • 48. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // Geometry.java Author: Lewis/Loftus // // Demonstrates the use of an assignment statement to change the // value stored in a variable. //******************************************************************** public class Geometry { //----------------------------------------------------------------- // Prints the number of sides of several geometric shapes. //----------------------------------------------------------------- public static void main(String[] args) { int sides = 7; // declaration with initialization System.out.println("A heptagon has " + sides + " sides."); sides = 10; // assignment statement System.out.println("A decagon has " + sides + " sides."); sides = 12; System.out.println("A dodecagon has " + sides + " sides."); } }
  • 49. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // Geometry.java Author: Lewis/Loftus // // Demonstrates the use of an assignment statement to change the // value stored in a variable. //******************************************************************** public class Geometry { //----------------------------------------------------------------- // Prints the number of sides of several geometric shapes. //----------------------------------------------------------------- public static void main (String[] args) { int sides = 7; // declaration with initialization System.out.println ("A heptagon has " + sides + " sides."); sides = 10; // assignment statement System.out.println ("A decagon has " + sides + " sides."); sides = 12; System.out.println ("A dodecagon has " + sides + " sides."); } } Output A heptagon has 7 sides. A decagon has 10 sides. a dodecagon has 12 sides.
  • 50. Constants • A constant is an identifier that is similar to a variable except that it holds the same value during its entire existence • As the name implies, it is constant, not variable • The compiler will issue an error if you try to change the value of a constant • In Java, we use the final modifier to declare a constant final int MIN_HEIGHT = 69; Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 51. Interactive Programs • Programs generally need input on which to operate • The Scanner class provides convenient methods for reading input values of various types • A Scanner object can be set up to read input from various sources, including the user typing values on the keyboard • Keyboard input is represented by the System.in object Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 52. Reading Input • The following line creates a Scanner object that reads from the keyboard: Scanner scan = new Scanner(System.in); • The new operator creates the Scanner object • Once created, the Scanner object can be used to invoke various input methods, such as: answer = scan.nextLine(); Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 53. Reading Input • The Scanner class is part of the java.util class library, and must be imported into a program to be used • The nextLine method reads all of the input until the end of the line is found • See Echo.java • The details of object creation and class libraries are discussed further in Chapter 3 Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 54. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // Echo.java Author: Lewis/Loftus // // Demonstrates the use of the nextLine method of the Scanner class // to read a string from the user. //******************************************************************** import java.util.Scanner; public class Echo { //----------------------------------------------------------------- // Reads a character string from the user and prints it. //----------------------------------------------------------------- public static void main(String[] args) { String message; Scanner scan = new Scanner(System.in); System.out.println("Enter a line of text:"); message = scan.nextLine(); System.out.println("You entered: "" + message + """); } }
  • 55. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // Echo.java Author: Lewis/Loftus // // Demonstrates the use of the nextLine method of the Scanner class // to read a string from the user. //******************************************************************** import java.util.Scanner; public class Echo { //----------------------------------------------------------------- // Reads a character string from the user and prints it. //----------------------------------------------------------------- public static void main(String[] args) { String message; Scanner scan = new Scanner(System.in); System.out.println("Enter a line of text:"); message = scan.nextLine(); System.out.println("You entered: "" + message + """); } } Sample Run Enter a line of text: You want fries with that? You entered: "You want fries with that?"
  • 56. Input Tokens • Unless specified otherwise, white space is used to separate the elements (called tokens) of the input • White space includes space characters, tabs, new line characters • The next method of the Scanner class reads the next input token and returns it as a string • Methods such as nextInt and nextDouble read data of particular types • See GasMileage.java Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 57. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // GasMileage.java Author: Lewis/Loftus // // Demonstrates the use of the Scanner class to read numeric data. //******************************************************************** import java.util.Scanner; public class GasMileage { //----------------------------------------------------------------- // Calculates fuel efficiency based on values entered by the // user. //----------------------------------------------------------------- public static void main(String[] args) { int miles; double gallons, mpg; Scanner scan = new Scanner(System.in); continue
  • 58. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus continue System.out.print("Enter the number of miles: "); miles = scan.nextInt(); System.out.print("Enter the gallons of fuel used: "); gallons = scan.nextDouble(); mpg = miles / gallons; System.out.println("Miles Per Gallon: " + mpg); } }
  • 59. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus continue System.out.print ("Enter the number of miles: "); miles = scan.nextInt(); System.out.print ("Enter the gallons of fuel used: "); gallons = scan.nextDouble(); mpg = miles / gallons; System.out.println("Miles Per Gallon: " + mpg); } } Sample Run Enter the number of miles: 328 Enter the gallons of fuel used: 11.2 Miles Per Gallon: 29.28571428571429
  • 60. Creating Objects • A variable holds either a primitive value or a reference to an object • A class name can be used as a type to declare an object reference variable String title; • No object is created with this declaration • An object reference variable holds the address of an object • The object itself must be created separately Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 61. Creating Objects • Generally, we use the new operator to create an object • Creating an object is called instantiation • An object is an instance of a particular class title = new String("Java Software Solutions"); This calls the String constructor, which is a special method that sets up the object Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 62. Invoking Methods • We've seen that once an object has been instantiated, we can use the dot operator to invoke its methods numChars = title.length() • A method may return a value, which can be used in an assignment or expression • A method invocation can be thought of as asking an object to perform a service Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 63. References • Note that a primitive variable contains the value itself, but an object variable contains the address of the object • An object reference can be thought of as a pointer to the location of the object • Rather than dealing with arbitrary addresses, we often depict a reference graphically "Steve Jobs" name1 num1 38 Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 64. Assignment Revisited • The act of assignment takes a copy of a value and stores it in a variable • For primitive types: num1 38 num2 96 Before: num2 = num1; num1 38 num2 38 After: Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 65. Reference Assignment • For object references, assignment copies the address: name2 = name1; name1 name2 Before: "Steve Jobs" "Steve Wozniak" name1 name2 After: "Steve Jobs" Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 66. Aliases • Two or more references that refer to the same object are called aliases of each other • That creates an interesting situation: one object can be accessed using multiple reference variables • Aliases can be useful, but should be managed carefully • Changing an object through one reference changes it for all of its aliases, because there is really only one object Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 67. Garbage Collection • When an object no longer has any valid references to it, it can no longer be accessed by the program • The object is useless, and therefore is called garbage • Java performs automatic garbage collection periodically, returning an object's memory to the system for future use • In other languages, the programmer is responsible for performing garbage collection Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 68. The String Class • Because strings are so common, we don't have to use the new operator to create a String object title = "Java Software Solutions"; • This is special syntax that works only for strings • Each string literal (enclosed in double quotes) represents a String object Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 69. String Methods • Once a String object has been created, neither its value nor its length can be changed • Therefore we say that an object of the String class is immutable • However, several methods of the String class return new String objects that are modified versions of the original Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 70. String Indexes • It is occasionally helpful to refer to a particular character within a string • This can be done by specifying the character's numeric index • The indexes begin at zero in each string • In the string "Hello", the character 'H' is at index 0 and the 'o' is at index 4 • See StringMutation.java Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 71. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // StringMutation.java Author: Lewis/Loftus // // Demonstrates the use of the String class and its methods. //******************************************************************** public class StringMutation { //----------------------------------------------------------------- // Prints a string and various mutations of it. //----------------------------------------------------------------- public static void main(String[] args) { String phrase = "Change is inevitable"; String mutation1, mutation2, mutation3, mutation4; System.out.println("Original string: "" + phrase + """); System.out.println("Length of string: " + phrase.length()); mutation1 = phrase.concat(", except from vending machines."); mutation2 = mutation1.toUpperCase(); mutation3 = mutation2.replace('E', 'X'); mutation4 = mutation3.substring(3, 30); continued
  • 72. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus continued // Print each mutated string System.out.println("Mutation #1: " + mutation1); System.out.println("Mutation #2: " + mutation2); System.out.println("Mutation #3: " + mutation3); System.out.println("Mutation #4: " + mutation4); System.out.println("Mutated length: " + mutation4.length()); } }
  • 73. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus continued // Print each mutated string System.out.println ("Mutation #1: " + mutation1); System.out.println ("Mutation #2: " + mutation2); System.out.println ("Mutation #3: " + mutation3); System.out.println ("Mutation #4: " + mutation4); System.out.println("Mutated length: " + mutation4.length()); } } Output Original string: "Change is inevitable" Length of string: 20 Mutation #1: Change is inevitable, except from vending machines. Mutation #2: CHANGE IS INEVITABLE, EXCEPT FROM VENDING MACHINES. Mutation #3: CHANGX IS INXVITABLX, XXCXPT FROM VXNDING MACHINXS. Mutation #4: NGX IS INXVITABLX, XXCXPT F Mutated length: 27
  • 74. Class Libraries • A class library is a collection of classes that we can use when developing programs • The Java standard class library is part of any Java development environment • Its classes are not part of the Java language per se, but we rely on them heavily • Various classes we've already used (System , Scanner, String) are part of the Java standard class library Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 75. Packages • For purposes of accessing them, classes in the Java API are organized into packages • These often overlap with specific APIs • Examples: Package java.lang java.applet java.awt javax.swing java.net java.util javax.xml.parsers Purpose General support Creating applets for the web Graphics and graphical user interfaces Additional graphics capabilities Network communication Utilities XML document processing Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 76. The import Declaration • When you want to use a class from a package, you could use its fully qualified name java.util.Scanner • Or you can import the class, and then use just the class name import java.util.Scanner; • To import all classes in a particular package, you can use the * wildcard character import java.util.*; Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 77. The import Declaration • All classes of the java.lang package are imported automatically into all programs • It's as if all programs contain the following line: import java.lang.*; • That's why we didn't have to import the System or String classes explicitly in earlier programs • The Scanner class, on the other hand, is part of the java.util package, and therefore must be imported Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 78. The Random Class • The Random class is part of the java.util package • It provides methods that generate pseudorandom numbers • See RandomNumbers.java Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 79. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // RandomNumbers.java Author: Lewis/Loftus // // Demonstrates the creation of pseudo-random numbers using the // Random class. //******************************************************************** import java.util.Random; public class RandomNumbers { //----------------------------------------------------------------- // Generates random numbers in various ranges. //----------------------------------------------------------------- public static void main(String[] args) { Random generator = new Random(); int num1; float num2; num1 = generator.nextInt(); System.out.println("A random integer: " + num1); num1 = generator.nextInt(10); System.out.println("From 0 to 9: " + num1); continued
  • 80. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus continued num1 = generator.nextInt(10) + 1; System.out.println("From 1 to 10: " + num1); num1 = generator.nextInt(15) + 20; System.out.println("From 20 to 34: " + num1); num1 = generator.nextInt(20) - 10; System.out.println("From -10 to 9: " + num1); num2 = generator.nextFloat(); System.out.println("A random float (between 0-1): " + num2); num2 = generator.nextFloat() * 6; // 0.0 to 5.999999 num1 = (int)num2 + 1; System.out.println("From 1 to 6: " + num1); } }
  • 81. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus continued num1 = generator.nextInt(10) + 1; System.out.println ("From 1 to 10: " + num1); num1 = generator.nextInt(15) + 20; System.out.println ("From 20 to 34: " + num1); num1 = generator.nextInt(20) - 10; System.out.println ("From -10 to 9: " + num1); num2 = generator.nextFloat(); System.out.println("A random float (between 0-1): " + num2); num2 = generator.nextFloat() * 6; // 0.0 to 5.999999 num1 = (int)num2 + 1; System.out.println("From 1 to 6: " + num1); } } Sample Run A random integer: 672981683 From 0 to 9: 0 From 1 to 10: 3 From 20 to 34: 30 From -10 to 9: -4 A random float (between 0-1): 0.18538326 From 1 to 6: 3
  • 82. Quick Check Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus Given a Random object named gen, what range of values are produced by the following expressions? gen.nextInt(25) gen.nextInt(6) + 1 gen.nextInt(100) + 10 gen.nextInt(50) + 100 gen.nextInt(10) – 5 gen.nextInt(22) + 12
  • 83. Quick Check Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus Given a Random object named gen, what range of values are produced by the following expressions? gen.nextInt(25) gen.nextInt(6) + 1 gen.nextInt(100) + 10 gen.nextInt(50) + 100 gen.nextInt(10) – 5 gen.nextInt(22) + 12 Range 0 to 24 1 to 6 10 to 109 100 to 149 -5 to 4 12 to 33
  • 84. The Math Class • The Math class is part of the java.lang package • The Math class contains methods that perform various mathematical functions • These include: – absolute value – square root – exponentiation – trigonometric functions Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 85. The Math Class • The methods of the Math class are static methods (also called class methods) • Static methods are invoked through the class name – no object of the Math class is needed value = Math.cos(90) + Math.sqrt(delta); • We discuss static methods further in Chapter 7 • See Quadratic.java Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 86. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // Quadratic.java Author: Lewis/Loftus // // Demonstrates the use of the Math class to perform a calculation // based on user input. //******************************************************************** import java.util.Scanner; public class Quadratic { //----------------------------------------------------------------- // Determines the roots of a quadratic equation. //----------------------------------------------------------------- public static void main(String[] args) { int a, b, c; // ax^2 + bx + c double discriminant, root1, root2; Scanner scan = new Scanner(System.in); System.out.print("Enter the coefficient of x squared: "); a = scan.nextInt(); continued
  • 87. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus continued System.out.print("Enter the coefficient of x: "); b = scan.nextInt(); System.out.print("Enter the constant: "); c = scan.nextInt(); // Use the quadratic formula to compute the roots. // Assumes a positive discriminant. discriminant = Math.pow(b, 2) - (4 * a * c); root1 = ((-1 * b) + Math.sqrt(discriminant)) / (2 * a); root2 = ((-1 * b) - Math.sqrt(discriminant)) / (2 * a); System.out.println("Root #1: " + root1); System.out.println("Root #2: " + root2); } }
  • 88. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus continued System.out.print ("Enter the coefficient of x: "); b = scan.nextInt(); System.out.print ("Enter the constant: "); c = scan.nextInt(); // Use the quadratic formula to compute the roots. // Assumes a positive discriminant. discriminant = Math.pow(b, 2) - (4 * a * c); root1 = ((-1 * b) + Math.sqrt(discriminant)) / (2 * a); root2 = ((-1 * b) - Math.sqrt(discriminant)) / (2 * a); System.out.println("Root #1: " + root1); System.out.println("Root #2: " + root2); } } Sample Run Enter the coefficient of x squared: 3 Enter the coefficient of x: 8 Enter the constant: 4 Root #1: -0.6666666666666666 Root #2: -2.0
  • 89. Formatting Output • It is often necessary to format output values in certain ways so that they can be presented properly • The Java standard class library contains classes that provide formatting capabilities • The NumberFormat class allows you to format values as currency or percentages • The DecimalFormat class allows you to format values based on a pattern • Both are part of the java.text package Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 90. Formatting Output • The NumberFormat class has static methods that return a formatter object getCurrencyInstance() getPercentInstance() • Each formatter object has a method called format that returns a string with the specified information in the appropriate format • See Purchase.java Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 91. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // Purchase.java Author: Lewis/Loftus // // Demonstrates the use of the NumberFormat class to format output. //******************************************************************** import java.util.Scanner; import java.text.NumberFormat; public class Purchase { //----------------------------------------------------------------- // Calculates the final price of a purchased item using values // entered by the user. //----------------------------------------------------------------- public static void main(String[] args) { final double TAX_RATE = 0.06; // 6% sales tax int quantity; double subtotal, tax, totalCost, unitPrice; Scanner scan = new Scanner(System.in); continued
  • 92. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus continued NumberFormat fmt1 = NumberFormat.getCurrencyInstance(); NumberFormat fmt2 = NumberFormat.getPercentInstance(); System.out.print("Enter the quantity: "); quantity = scan.nextInt(); System.out.print("Enter the unit price: "); unitPrice = scan.nextDouble(); subtotal = quantity * unitPrice; tax = subtotal * TAX_RATE; totalCost = subtotal + tax; // Print output with appropriate formatting System.out.println("Subtotal: " + fmt1.format(subtotal)); System.out.println("Tax: " + fmt1.format(tax) + " at " + fmt2.format(TAX_RATE)); System.out.println("Total: " + fmt1.format(totalCost)); } }
  • 93. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus continued NumberFormat fmt1 = NumberFormat.getCurrencyInstance(); NumberFormat fmt2 = NumberFormat.getPercentInstance(); System.out.print ("Enter the quantity: "); quantity = scan.nextInt(); System.out.print("Enter the unit price: "); unitPrice = scan.nextDouble(); subtotal = quantity * unitPrice; tax = subtotal * TAX_RATE; totalCost = subtotal + tax; // Print output with appropriate formatting System.out.println("Subtotal: " + fmt1.format(subtotal)); System.out.println("Tax: " + fmt1.format(tax) + " at " + fmt2.format(TAX_RATE)); System.out.println("Total: " + fmt1.format(totalCost)); } } Sample Run Enter the quantity: 5 Enter the unit price: 3.87 Subtotal: $19.35 Tax: $1.16 at 6% Total: $20.51
  • 94. Formatting Output • The DecimalFormat class can be used to format a floating point value in various ways • For example, you can specify that the number should be truncated to three decimal places • The constructor of the DecimalFormat class takes a string that represents a pattern for the formatted number • See CircleStats.java Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 95. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // CircleStats.java Author: Lewis/Loftus // // Demonstrates the formatting of decimal values using the // DecimalFormat class. //******************************************************************** import java.util.Scanner; import java.text.DecimalFormat; public class CircleStats { //----------------------------------------------------------------- // Calculates the area and circumference of a circle given its // radius. //----------------------------------------------------------------- public static void main(String[] args) { int radius; double area, circumference; Scanner scan = new Scanner(System.in); continued
  • 96. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus continued System.out.print ("Enter the circle's radius: "); radius = scan.nextInt(); area = Math.PI * Math.pow(radius, 2); circumference = 2 * Math.PI * radius; // Round the output to three decimal places DecimalFormat fmt = new DecimalFormat ("0.###"); System.out.println ("The circle's area: " + fmt.format(area)); System.out.println ("The circle's circumference: " + fmt.format(circumference)); } }
  • 97. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus continued System.out.print ("Enter the circle's radius: "); radius = scan.nextInt(); area = Math.PI * Math.pow(radius, 2); circumference = 2 * Math.PI * radius; // Round the output to three decimal places DecimalFormat fmt = new DecimalFormat("0.###"); System.out.println("The circle's area: " + fmt.format(area)); System.out.println("The circle's circumference: " + fmt.format(circumference)); } } Sample Run Enter the circle's radius: 5 The circle's area: 78.54 The circle's circumference: 31.416
  • 98. Enumerated Types • Java allows you to define an enumerated type, which can then be used to declare variables • An enumerated type declaration lists all possible values for a variable of that type • The values are identifiers of your own choosing • The following declaration creates an enumerated type called Season enum Season {winter, spring, summer, fall}; • Any number of values can be listed Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 99. Enumerated Types • Once a type is defined, a variable of that type can be declared: Season time; • And it can be assigned a value: time = Season.fall; • The values are referenced through the name of the type • Enumerated types are type-safe – you cannot assign any value other than those listed Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 100. Ordinal Values • Internally, each value of an enumerated type is stored as an integer, called its ordinal value • The first value in an enumerated type has an ordinal value of zero, the second one, and so on • However, you cannot assign a numeric value to an enumerated type, even if it corresponds to a valid ordinal value Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 101. Enumerated Types • The declaration of an enumerated type is a special type of class, and each variable of that type is an object • The ordinal method returns the ordinal value of the object • The name method returns the name of the identifier corresponding to the object's value • See IceCream.java Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 102. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus //******************************************************************** // IceCream.java Author: Lewis/Loftus // // Demonstrates the use of enumerated types. //******************************************************************** public class IceCream { enum Flavor {vanilla, chocolate, strawberry, fudgeRipple, coffee, rockyRoad, mintChocolateChip, cookieDough} //----------------------------------------------------------------- // Creates and uses variables of the Flavor type. //----------------------------------------------------------------- public static void main (String[] args) { Flavor cone1, cone2, cone3; cone1 = Flavor.rockyRoad; cone2 = Flavor.chocolate; System.out.println("cone1 value: " + cone1); System.out.println("cone1 ordinal: " + cone1.ordinal()); System.out.println("cone1 name: " + cone1.name()); continued
  • 103. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus continued System.out.println(); System.out.println("cone2 value: " + cone2); System.out.println("cone2 ordinal: " + cone2.ordinal()); System.out.println("cone2 name: " + cone2.name()); cone3 = cone1; System.out.println(); System.out.println("cone3 value: " + cone3); System.out.println("cone3 ordinal: " + cone3.ordinal()); System.out.println("cone3 name: " + cone3.name()); } }
  • 104. Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus continued System.out.println (); System.out.println ("cone2 value: " + cone2); System.out.println ("cone2 ordinal: " + cone2.ordinal()); System.out.println ("cone2 name: " + cone2.name()); cone3 = cone1; System.out.println (); System.out.println ("cone3 value: " + cone3); System.out.println ("cone3 ordinal: " + cone3.ordinal()); System.out.println("cone3 name: " + cone3.name()); } } Output cone1 value: rockyRoad cone1 ordinal: 5 cone1 name: rockyRoad cone2 value: chocolate cone2 ordinal: 1 cone2 name: chocolate cone3 value: rockyRoad cone3 ordinal: 5 cone3 name: rockyRoad
  • 105. Wrapper Classes • The java.lang package contains wrapper classes that correspond to each primitive type: Primitive Type Wrapper Class byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean
  • 106. Wrapper Classes • The following declaration creates an Integer object which represents the integer 40 as an object Integer age = new Integer(40); • An object of a wrapper class can be used in any situation where a primitive value will not suffice • For example, some objects serve as containers of other objects • Primitive values could not be stored in such containers, but wrapper objects could be Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 107. Wrapper Classes • Wrapper classes also contain static methods that help manage the associated type • For example, the Integer class contains a method to convert an integer stored in a String to an int value: num = Integer.parseInt(str); • They often contain useful constants as well • For example, the Integer class contains MIN_VALUE and MAX_VALUE which hold the smallest and largest int values Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 108. Autoboxing • Autoboxing is the automatic conversion of a primitive value to a corresponding wrapper object: Integer obj; int num = 42; obj = num; • The assignment creates the appropriate Integer object • The reverse conversion (called unboxing) also occurs automatically as needed Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus
  • 109. Quick Check Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus Are the following assignments valid? Explain. Double value = 15.75; Character ch = new Character('T'); char myChar = ch;
  • 110. Quick Check Slides adapted from Java Software Solutions Foundations of Program Design 8th , John Lewis • William Loftus Are the following assignments valid? Explain. Double value = 15.75; Character ch = new Character('T'); char myChar = ch; Yes. The double literal is autoboxed into a Double object. Yes, the char in the object is unboxed before the assignment.