Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 151

Object-Oriented Programming (OOP)

Using Java

Fundamental Programming Structures


in Java
Objectives
 Learn about programing paradigm
 structured Vs object-oriented paradigm
 Understanding OOP concepts and features
 Learn the basics of java programming language:
 Tokens: Identifiers, Separators, Operators, keywords & Literals
 Constants, variables and primitive data types
 The main() method
 Control statements: if, switch
 Loop statements: while, do…while, for and Jumps in loops
 Array & Strings in java
2 Compiled By Sahile.T
Overview of programming
• Programming paradigm is a way of conceptualizing what it means to

perform computation and how tasks to be carried out and organized on

a computer.
I. Structured Programing

 Problem solving would involve the analysis of processes in terms of


the procedural tasks carried out and the production of a system whose
representation is based on the procedural flow of the processes.
 data is separate from code.
 programmer is responsible for organizing everything in to logical units

3
of code/data Compiled By Sahile.T
 A procedural program is divided into functions, and (ideally, at least) each function

has a clearly defined purpose & a clearly defined interface to the other functions in

the program.

Programs with Structural Programming


1. Unrestricted Access
 Functions have unrestricted access to global data.

2. Real-World Modeling
 Unrelated functions and data, the basics of the procedural paradigm, provide a poor
model of the real world.

3. Difficult of Creating New Data Types


 Traditional languages are not extensible because they will not let you create new
data types.
4 Compiled By Sahile.T
II. OOP Approach
 A modern programming paradigm that allows the Programmer to
model a problem in a real-world fashion as an object.
 Major objective is to eliminate some of the unfavorable features
encountered in the procedural approach.
 Ties data more closely to the functions that operate on it and
protects it from unintentional modification by other functions.
 Allows us to decompose a problem into a number of entities
called objects and then build data and functions (methods)
around them.
5 Compiled By Sahile.T
Object-oriented paradigm features
• Emphasis is on data rather than procedure
• Programs are divided into what are known as objects

• Methods that operate on the data of an object are tied together in the data structure
• Data is hidden and can’t be accessed by external functions
• Objects may communicate with each other through methods
• New data and methods can be easily added whenever necessary
• Follows bottom-up approach in program design
• First, the individual base elements of a program are specified (Objects with their data structures and
methods)
• Then they are linked together to form larger subsystems (using algorithm)
• Structured approach is top-down (algorithm comes first, then the data structure)

6 Compiled By Sahile.T
Basic concepts of OOP
Objects and Classes

A. Object: is a software package that has State and Behavior and it occupies
memory
Example: dogs have states (name, color, hungry, breed) and behaviors (bark, fetch,
and wag tail).
• Software Objects are often used to model real-world objects.

B. Class: is the template or blueprint that defines the states and the behaviors
common to all objects of a certain kind.
• It is a collection of objects of similar type.

• Classes are user-defined data types & behave like the built-in types of programming
language.
7 Compiled By Sahile.T
Message
 Software objects interact and communicate with each other by
sending messages to each other.
 The process of programming in object-oriented language, therefore,
involves the following three basic steps:
i. Creating classes that define objects and their behavior.

ii. Creating objects from class definitions.

iii. Establishing communication among objects.

• A message for an object is a request for execution of a procedure,


and therefore will invoke a method (procedure) in the receiving
object that generates the desired result.
8 Compiled By Sahile.T
 OOP’s fundamental building blocks:
I. Data Abstraction and Encapsulation
II. Inheritance
III. Polymorphism

9
I. Data Abstraction & Encapsulation
 The wrapping up of data and methods into a single unit (called
class) is known as encapsulation.
 This insulation of the data from direct access by the program is
called data hiding.
 Abstraction refers to the set of representing essential features
without including the background details or explanations
 Classes use the concept of data abstraction, and they are known as
Abstract Data Types (ADT)
 They hide the private data structure details and communicate with the
10 outside using public methods which act as interfaces
II. Inheritance
• Is the process by which objects of one class acquire the properties of objects of
another class.
• It provides the idea of reusability

III. Polymorphism
• Is the ability to take more than one form.
• Plays an important role in allowing objects having different internal structures
to share the same external interface.
 Three types of polymorphism:
1. Overloading methods

2. Overriding methods, and

3. Dynamic method binding


11 Compiled By Sahile.T
 Overloaded methods: methods with the same name
signature but either a different number of parameters or
different types in the parameter list
 Overridden methods are methods that are redefined
within an inherited or subclass
 They have the same signature and the subclass definition is used

 Dynamic binding means that the code associated with a


given procedure call is not known until the time of the
call at runtime.
12  Memory is allocated at runtime not at compile time.
Section II
Basics of Java Programming Language

13 Compiled By Sahile.T
Java Overview
 Java is a general purpose, object-oriented programming language
developed by Sun Microsystems of USA in 1991.

 Java applications are object code portable as long as a Java virtual


machine is implemented for the target machine.

 The java object-oriented programming framework promotes reusability


of software and code.

 The Java foundation class libraries provide for windowing and graphical
user interface programming, network communications, and Multimedia
facilities. Together, they demonstrate the practical and productive work
done in Java.
14 Compiled By Sahile.T
Java Editions: SE, EE and ME
Java Editions: SE, EE and ME
 The Java Enterprise Edition (Java EE) is geared toward developing large-
scale, distributed networking applications and web-based applications.
 Today’s applications can be written with the aim of communicating among the
world’s computers via the Internet and the web.
 The Java Micro Edition (Java ME) is geared toward developing applications
for small, memory-constrained devices, such as BlackBerry smart phones.
 Google’s Android operating system—used on numerous smartphones,
tablets (small, lightweight mobile computers with touch screens), e-readers and
other devices—uses a customized version of Java not based on Java ME.

15
Java Features
I. Compiled and Interpreted
 Java combines both these approaches thus makes it a two-stage
system.
 Java compiler translates the source code into bytecode
instructions.
 Java interpreter generates the machine code that can be directly
executed by the machine that is running the java program.

16 Compiled By Sahile.T
How it Works?
Compile-time Environment Run-time Environment
Class
Loader Java
Class
Bytecode Libraries
Java Verifier
Source
(.java)

Just in
Java Java
Time
Bytecodes Interpreter Java
Compiler
move locally Virtual
or through machine
Java network
Compiler
Runtime System

Java
Bytecod Operating System
e
(.class )
Hardware
17
Compiled By Sahile.T
Java Virtual Machine (JVM)
 Java compiler produces an intermediate code known as bytecode for
a machine that does not exist. This machine is known as Java
Virtual Machine (JVM) & it exists only inside computer memory.

 It is a simulated computer within the computer and does all major


functions of the real computer.

 The JVM is responsible in interpreting bytecode to machine


understandable code (Machine code).

 Just In Time compiler (JIT), part of the JVM, is responsible for


compiling code as it is needed, during execution .
18 Compiled By Sahile.T
II. Platform independent and Portable
 “compile once and execute many times in many platforms”
 Most significant contribution of java over other languages is its
portability. i.e. Java programs can be easily moved from one
computer system to another, anywhere and anytime.
 Changes and upgrades in operating systems, processors and system
resources will not force any changes in java programs.
 Java ensures portability in two ways:
i. Java compiler generates bytecode instructions that can be implemented
on any machine.

19
ii. The size of the primitive data types are machine-independent.
Compiled By Sahile.T
III. Object-oriented

 Java is true object-oriented programming language.


 All program code and data reside within objects and classes.

IV. Robust and Secure


 It has strict compile time and run-time checking for data types.
 It is designed as a garbage-collected language relieving the
programmers virtually all memory management problems.
 It also incorporates the concept of exception handling which captures
serious errors and eliminates any risk of chasing the system.
 Java systems ensure that no viruses are communicated within applet
programs.
20 Compiled By Sahile.T
V. Distributed
 Java is designed as a distributed language for creating applications on
networks.
 It has the ability to share both data and programs.
 Java applications can open and access remote objects on Internet as easily
as they can do in a local system.

VI. Simple, Small and Familiar


 Java is a small and simple language even easier than C and C++.
 Java doesn’t use pointers, preprocessor header files, goto statement and
many others. To make the language look familiar to the existing
programmers,
21 java uses many constructs
Compiled By Sahile.Tof C and C++.
VII. Multithreaded and interactive
 Multithreaded means handling multiple tasks simultaneously.
 Java supports multithreaded programs: We don’t need to wait for the application to
finish one task before beginning another task.
 The java runtime comes with tools that support multiprocessor synchronization and
construct smoothly running interactive systems.

VIII.Dynamic and Extensible


 Java allocates memory at runtime not at compile time.
 Java is capable of dynamically linking in new class libraries, methods, and objects.
 Java program supports functions written in other languages such as C and C++.
Such functions are know as native methods
 Native methods are linked dynamically at runtime.
22 Compiled By Sahile.T
Disadvantages of Java
 Running bytecode through the interpreter is not as fast as
running machine code, which is specific to that platform.
 Because it is platform independent, it is difficult to use
platform specific features (e.g., Windows taskbar, quick
launch) in Java.
 Java interpreter must be installed on the computer in order to
run Java programs.

23 Compiled By Sahile.T
Differences Between Java and C++
 Java does not support operator overloading.
 Java does not have template classes as in C++.
 Java does not support multiple inheritance.
• This is accomplished using a new feature called “interface”
 Java does not support global variables.
• Every variable and method is declared within a class and
forms part of that class.
 Java does not use pointers
 Java has replaced the destructor function with a finalize()
function
 There are not header files in Java.

24 Compiled By Sahile.T
Java Environment
 Java environment includes a large number of development tools and
hundreds of classes and Methods.
 The development tools are part of the system known as Java
Development Kit (JDK) and the classes and methods are part of the
Java Standard Library (JSL), also known as Application
Programming Interface (API).
 JDK comes with a collection of tools that are used for developing and
running java programs:
 appleviewer (for viewing java applets )
 javac (java compiler)
 java (java interpreter)
 javap (java disassembler)
 javah (for C header files)
 javadoc (for creating HTML documents)

25 jdb (Java debugger)
Compiled By Sahile.T
Java API
 It includes hundreds of classes and methods grouped into several
functional packages.
 Most commonly used packages are:
 Language Support Package: a collection of classes and methods required
for implementing basic features of java.
 Utilities Package: a collection of classes to provide utility functions such as
date and time functions.
 Input/output Package: a collection of classes required for input/output
manipulation.
 Networking Package: a collection of classes for communicating with other
computers via Internet.
 AWT Package (Abstract Window Tool kit package): contains classes that
implements platform-independent graphical user interface.
 Applet Package: includes set of classes that allows us to create java applets.
26
Compiled By Sahile.T
Section III
Overview of Java Programming
Language

27 Compiled By Sahile.T
Introduction
 Java is a general-purpose, object-oriented programming
language.
 We can develop two types of Java programs namely:
 Stand-alone application
 Web applets
 Executing stand-alone Java program involves two steps:
• Compiling source code into byte code javac compiler.
• Executing the bytecode program using java interpreter.
 Applets are small programs developed for Internet applications.
 An applet located on a distant computer (server) can be
downloaded via Internet and executed on a local computer
(client) using a Java-capable browser.
28 Compiled By Sahile.T
Compiler

Two Ways of writing Java Programs


29 Compiled By Sahile.T
Simple Java Program
The simplest way to learn a new language is to write a few
simple example programs and execute them.

public class Sample


{
public static void main (String args [])
{
System.out.print(“Java is better than C++.”);
}
}

30 Compiled By Sahile.T
 Let us discuss the program line by line:
• Class Declaration: the first line class Sample declares a class,
which is an object constructor. Class is keyword and declares a
new class definition and Sample is a java identifier that specifies
the name of the class to be defined.
• Opening Brace “{“: Every class definition in java begins with an
opening brace and ends with a closing brace “}”.
• The main line: the third line public static void main(String
args[]) defines a method named as main.
• Is the starting point for the interpreter to begin the execution
31 of the program.
Note:
 A java program can have any number of classes but only one of
them must include the main method to initiate the execution.
 Java applets will not use the main method at all.
 The third line uses a number of keywords: public, static and
void
 public: is an access specifier that declares the main method as
“unprotected” and therefore making it accessible to all other
classes.
 static: declares that this method as one that belongs to the entire
class and not a part of any objects of the class.
 Main must always be declared as static since the interpreter
uses this method before any objects are created.
 void : states that the main method does not return any value (but

32 prints some text to the screen.)


Compiled By Sahile.T
Contd.
 All parameters to a method are declared inside a pair of
parenthesis. Here, String args [ ] declares a parameter named
args, which contains array of objects of the class type String.
 The Output Line: The only executable statement in the program
is System.out.println (“Java is better than C++.”);
 This is similar to cout<< constructor of C++.
 The println method is a member of the out object, which is a
static data member of System class.

33 Compiled By Sahile.T
Java Program Structure
Documentation
Documentation Section
Section Suggested
Suggested

Optional
Optional
Package
Package Statement
Statement

Optional
Optional
Import
Import Statements
Statements

Optional
Optional
Interface
Interface Statements
Statements

Class
Class Definitions
Definitions Optional
Optional

Main
Main Method
Method class
class
{{ Essential
Essential
Main
Main Method
Method Definition
Definition
}}

34 Compiled By Sahile.T
Documentation Section
 comprises a set of comment lines giving the name of the
program, the author and other details, which the programmer
would like to refer at a later stage.
 Java supports three types of comments:
i. Single line comment //
ii. Multiple line comment /*………………
………………*/
iii. Documentation comment /**….*/
• This form of comment is used for generating
documentation automatically.
35 Compiled By Sahile.T
Package Statements
 Is the first statement in Java file and is optional.
 It declares a package name and informs the compiler that the
classes defined here belong to this package.
Example: package student;

Import Statements
 Next to package statements (but before any class definitions) a
number of import statements may exist. This is similar to #include
statements in C or C++.
 Using import statements we can have access to classes that are part
of other named packages.
Example: import java.lang.Math;

36 Compiled By Sahile.T
Interface Statements
 An interface is like a class but includes a group of method
declarations.
 is also an optional section.
 is used only when we wish to implement the multiple inheritance
features in the program

Class Definitions
 A Java program may contain multiple class definitions.
 Classes are the primary and essential elements of a Java program.
 These classes are used to map objects of real-world problems.
 The number of classes depends on the complexity of the problem.

37 Compiled By Sahile.T
Main Method Class
 Since every Java stand-alone program requires a main method as
its starting point, this class is the essential part of a Java program.
 A simple Java program may contain only this part.
 The main method creates objects of various classes and establishes
communications between them.
 On reaching the end of main, the program terminates and control
passes back to the operating system.

38 Compiled By Sahile.T
Section IV

Java Tokens

39 Compiled By Sahile.T
Introduction
 A class in java is defined by a set of declaration statements and
methods containing executable statements.
 Most statements contain expressions, which describe the actions
carried out on data.
 Smallest individual units in a program are known as tokens.
 In simplest terms, a java program is a collection of tokens,
comments, and white spaces.
 Java has five types of tokens: Reserved Keywords, Identifiers,
Literals, Separators and Operators .
40 Compiled By Sahile.T
1. Keywords
 Are essential part of a language definition and can not be used as
names for variables, classes, methods and so on.
 Java language has reserved 60 words as keywords.

41 Compiled By Sahile.T
2. Identifiers
 Are programmer-designed tokens.
 Are used for naming classes, methods, variables, objects,
labels, packages and interfaces in a program.
 Java identifiers follow the following rules:
 They can have alphabets, digits, and the underscore and
dollar sign characters.
 They must not begin with a digit
 Uppercase and lowercase letters are distinct.
 They can be of any length.
42 Compiled By Sahile.T
POP QUIZ

Which of the following are valid Identifiers?

1) $amount 5) score
2) 6tally 6) first Name
3) my*Name 7) total#
4) salary 8) cast

43 Compiled By Sahile.T
3. Literals
 Literals in Java are a sequence of characters(digits, letters and
other characters) that represent constant values to be stored in
variables.
 Five major types of literals in Java:
I. Integer Literals: refers to a sequence of digits (decimal integer, octal
integer and hexadecimal integer)

II. Floating-point Literals

III. Character Literals

IV. String Literals

V. Boolean Literals
44 Compiled By Sahile.T
4. Separators
 Are symbols used to indicate where groups of code are divided
and arranged.
 They basically define the shape and functions of our code.
 Java separators include:

I. Parenthesis ( ) :- used to enclose parameters, to define


precedence in expressions, surrounding cast types

II. Braces { } :- used to contain the values of automatically


initialized arrays and to define a block of code for classes,
methods and local scopes.

45 Compiled By Sahile.T
Contd.
III. Brackets [ ] :- are used to declare array types and for
dereferencing array values.

IV. Semicolon ; :- used to separate statements.

V. Comma , :- used to separate consecutive identifiers in a


variable declaration, also used to chain statements together
inside a “for” statement.

VI. Period . :- Used to separate package names from sub-


package names and classes; also used to separate a variable
or method from a reference variable.
46 Compiled By Sahile.T
5. Operators
 Are symbols that take one or more arguments (operands) and
operates on them to a produce a result.
 Are used in programs to manipulate data and variables.
 They usually form a part of mathematical or logical
expressions.

 Expressions can be combinations of variables,


primitives and operators that result in a value.

47 Compiled By Sahile.T
Java Operators
 There are 8 different groups of operators in Java:
 Arithmetic operators
 Relational operators
 Logical operators
 Assignment operator
 Increment/Decrement operators
 Conditional operators
 Bitwise operators
 Special operators
48 Compiled By Sahile.T
A. Arithmetic Operators
 Java has five basic arithmetic operators
Operator Meaning
+ Addition or unary plus
– Subtraction or unary minus
* Multiplication
/ Division
% Modulo division

 They all work the same way as they do in other languages.


 We cannot use these operators on boolean type .
 Unlike C and C++, modulus operator can be applied to the
floating point data.
 Order of operations (or precedence) when evaluating an
expression is the same as you learned in school (BODMAS).
49 Compiled By Sahile.T
B. Relational Operators
 Relational operators compare two values
 Produces a boolean value (true or false) depending on
the relationship.
 Java supports six relational operators:
Operator Meaning
< Is less than
<= Is less than or equal to
> Is greater than
>= Is greater than or equal to
== Is equal to
!= Is not equal to

 Relational expressions are used in decision statements such


as, if and while to decide the course of action of a running
program.
50 Compiled By Sahile.T
Examples of Relational Operations

int x = 3;
int y = 5;
boolean result;

1) result = (x > y);


now result is assigned the value false because
3 is not greater than 5

2) result = (15 == x*y);


now result is assigned the value true because the product of
3 and 5 equals 15

3) result = (x != x*y);
now result is assigned the value true because the product of
x and y (15) is not equal to x (3)

51 Compiled By Sahile.T
C. Logical Operators
Symbol Name
&& Logical AND
|| Logical OR
! Logical NOT

 Logical operators can be referred to as boolean operators,


because they are only used to combine expressions that have a
value of true or false.
 The logical operators && and || are used when we want to
form compound conditions by combining two or more
relations.
 An expression which combines two or more relational
expressions is termed as a logical expression or a
compound relational expression.
10/05/2021 Compiled By Sahile.T 52
Examples of Logiacal Operators
boolean x = true;
boolean y = false;
boolean result;

1. Let result = (x && y);

now result is assigned the value false


(see truth table!)

2. Let result = ((x || y) && x);

(x || y) evaluates to true
(true && x) evaluates to true

now result is assigned the value true


53 Compiled By Sahile.T
4. Assignment Operator
 Are used to assign the value of an expression to a variable.
 In addition to the usual assignment operator(=), java has a set
of ‘shorthand’ assignment operators which are used in the
form:
var op = expr ;
Where var is a variable, op is a binary operator
and expr is an expresion.The operator op= is known
as shorthand assignment operator.
 The assignment statement: var op= expr; is
equivalent to var=var op(expr);
 Examples:
x += y + 5; is equivalent to x = x+(y+5);
y *= 7; is equivalent to y = y * 7;
54 Compiled By Sahile.T
5. Increment/Decrement Operators
count = count + 1;
can be written as:
++count; or count++;

++ is called the increment operator.

count = count - 1;
can be written as:
--count; or count--;

-- is called the decrement operator.


 Both ++ and -- are unary operators.
55 Compiled By Sahile.T
The increment/decrement operator has two forms:
The prefix form ++count, --count
first adds/subtracts1 to/from the variable and then continues to any
other operator in the expression
int numOranges = 5;
int numApples = 10;
int numFruit;
numFruit = ++numOranges + numApples;
numFruit has value 16
numOranges has value 6

The postfix form count++, count--


first evaluates the expression and then adds 1 to the variable
int numOranges = 5;
int numApples = 10;
int numFruit;
numFruit = numOranges++ + numApples;
numFruit has value 15
numOranges has value 6
Compiled By Sahile.T 56
10/05/2021
6. Conditional Operators
 The character pair ?: is a ternary operator available in java.
 It is used to construct conditional expression of the form:
exp1 ? exp2: exp3;
where exp1, exp2 and exp3 are expressions.
 The operator ?: works as follwos:
 exp1 is evaluated first. If it is nozero (true), then the
expression exp2 is evaluated and becomes the value of the
conditional expression. exp3 is evaluated and becomes the value of
the conditional expression if exp1 is false.
 Example:
Given a=10, b=15 the expression
x=(a>b)? a:b; will assign the value of
b to x. i.e. x=b=15;
57 Compiled By Sahile.T
6. Bitwise Operators
 One of the unique features of java compared to other high-level
languages is that it allows direct manipulation of individual bits
within a word.
 Bitwise operators are used to manipulate data at values of bit level.
 They are used for testing the bits, or shifting them to the right or left.
 They may not be applied to float or double data types.

Operator Meaning
& Bitwise AND
| Bitwise OR
^ Bitwise exclusive OR
~ One’s complement
<< Shift left
>> Shift right
>>> Shift right with zero fill

58 Compiled By Sahile.T
7. Special Operators
 Java supports some special operators of interest such as instanceof
operator and member selection operator(.).

7.1 instanceof Operator: is an object reference operator and


returns true if the object on the left-hand side is an instance of the class
given on the right-hand side.
Example :
person instanceof student;
is true if the object person belongs to the class student; otherwise it is
false
7.2 Dot Operator: is used to access the instance variables and
methods of class objects.
Example:
person.age; // Reference to the variable age.
person1.salary(); // Reference to the method salary.
59 Compiled By Sahile.T
Type Conversion in Expressions
A. Automatic Type Conversion: If the operands
of an expression are of different types, the ‘lower’ type is
automatically converted to the ‘higher’ type before the
operation proceeds. That is, the result is of the ‘higher’ type.
Example :

int a=110;

float b=23.5;

the expression a+b yields a floating point number 133.5 since


the ‘higher’ type here is float.
60 Compiled By Sahile.T
Contd.
B. Casting a value: is used to force type conversion.
 The general form of a cast is:

(type-name)expression;
where type-name is one of the standard data types.
Example :

x=(int)7.5; will assign 7 to x

a=(int)21.3/(int)3.5; a will be 7

61 Compiled By Sahile.T
Operator Precedence and Associativity.
Operator Description Associativity Rank
. Member Selection
() Function call
Left to right 1
[] Array elements reference
- Unary Minus
++ Increment
-- Decrement
Right to left 2
! Logical negation
~ One’s complement
(type) Casting
* Multiplication
Left to right 3
/ Division
% Modulus

62 Compiled By Sahile.T
Contd.
Operator Description Associativity Rank
+ Addition
Left to right 4
- Subtraction
<< Left Shift
Left to right 5
>> Right Shift
>>> Right shift with zero fill
< Less than
<= Less than or equal to
> Greater than Left to right 6
>= Greater than or equal to
instanceof Type comparison
== Equality
Left to right 7
!= Inequality
63 Compiled By Sahile.T
Operator Precedence and Associativity.
Operator Description Associativity Rank
& Bitwise AND Left to right 8
^ Bitwise XOR Left to right 9
| Bitwise OR Left to right 10

&& Logical AND Left to right 11

|| Logical OR Left to right 12


?: Conditional Operator Left to right 13
= Assignment operator Left to right 14
Op= Shorthand assignment Left to right 15

64 Compiled By Sahile.T
//Demonstration of Java Expressions
public class DemoExpress
{
public static void main(String[] args)
{
System.out.println("===== BEGINNING OF THE PROGRAM
=====\n");
//Declaration and Initialization
int a=10,b=5,c=8,d=2;
float x=6.4f,y=3.0f;

//Order of Evaluation
int answer1=a*b+c/++d;
int answer2=--a*(b+++c)/d++;

//Type Conversion
float answer3=a/c;
float answer4=(float)a/c;
float answer5=a/y;
65 Compiled By Sahile.T
//Modulo Operations
int answer6=a%c;
float answer7=x%y;

//Logical Operations
boolean bool1=a>b && c>d;
boolean bool2=a<b && c>d;
boolean bool3=a<b || c>d;
boolean bool4=!(a-b==c);

System.out.println("Order of Evaluation");
System.out.println("a*b+c/++d + "+answer1);
System.out.println("--a*(b+++c)/d++ = " +answer2);

System.out.println("================");
System.out.println("Type Conversion");
System.out.println(" a/c = "+answer3);
System.out.println("(float)a/c = " + answer4);
System.out.println(" a/y = " + answer5);
66 Compiled By Sahile.T
System.out.println("================");
System.out.println("Modulo Operations");
System.out.println(" a%c = "+answer6);
System.out.println(" x%y = "+answer7);

System.out.println("================");
System.out.println("Logical Operations");
System.out.println(" a>b && c>d = "+bool1);
System.out.println(" a<b && c>d = "+bool2);
System.out.println(" a<b || c>d = "+bool3);
System.out.println(" !(a-b==c) = "+bool4);

System.out.println("================");
System.out.println("Bitwise Operations");

67 Compiled By Sahile.T
//Shift Operators
int l=8, m=-8,n=2;
System.out.println(" n & 2= "+(n&2));
System.out.println(" l | n= "+(l|n));
System.out.println(" m | n= "+(m|n));
System.out.println(" l >> 2= "+(l>>2));
System.out.println(" l >>> 1= "+(l>>>1));
System.out.println(" l << 1= "+(l<<1));
System.out.println(" m >> 2= "+(m>>2));
System.out.println(" m >>> 1= "+(m>>>1));
System.out.println("\n===== END OF THE PROGRAM =====");

68 Compiled By Sahile.T
Section V
Variables and Primitive Data
Types

69 Compiled By Sahile.T
Variables
 A variable is an identifier that denotes a storage location used to
store a data value.
 Unlike constants, that remain unchanged during the execution
of a program, a variable may take different values at different
times during the execution of the program.
 It is good practice to select variable names that give a good
indication of the sort of data they hold:
 For example, if you want to record the size of a hat,
hatSize is a good choice for a name whereas qqq would
be a bad choice.

70
Compiled By Sahile.T
Contd.
 Variable names may consist of alphabets, digits, the
underscore (_) and dollar ($) characters, subject to the
following conditions:
1. They should not begin with a digit.
2. Keywords should not be used as a variable name.
3. White spaces are not allowed.
4. Uppercase and lowercase are distinct. i.e. A rose is not a
Rose is not a ROSE.
5.71 Variable names can be of Compiled
any length.
By Sahile.T
Data Types
 Every variable in Java has a data type.
 Data types specify the size and type of values that can be stored.
 Java is language is rich in the data types.
 Java data types are of two type:
 Primitive Data Types (also called intrinsic or built-in data
types)
 Non-Primitive data Types (also known as Derived or
reference types)

72 Compiled By Sahile.T
Data Types in Java

Primitive Non-Primitive
(Intrinsic) (Derived)

Numeric Non-Numeric Classes Arrays

Interfaces
Integer Floating-Point Character Boolean

Data Types in Java


73 Compiled By Sahile.T
Primitive Data Types
 There are eight built-in data types in Java:
• 4 integer types (byte, short, int, long)
• 2 floating point types (float, double)
• Boolean (boolean)
• Character (char)
 All variables must be declared with a data type before they
are used.
 Each variable's declared type does not change over the
course of the program.

74 Compiled By Sahile.T
A. Integer Data types
 There are four data types that can be used to store integers.
 The one you choose to use depends on the size of the number that
we want to store.

75 Compiled By Sahile.T
B. Floating-Point Types
 Integer types can hold only whole numbers and therefore we need
another type known as floating point type to hold numbers
containing fractional parts.

 There are two data types that can be used to store decimal values
(real numbers).

76 Compiled By Sahile.T
C. Character Type
 Is used to store character constants in memory.
 Java provides a character data type called char
 The char data type assumes a size of 2 bytes but, basically, it
can hold only a single character.

 Note that you need to use singular quotation marks while


initializing a variable whose data type is char.
Example:
char firstLetterOfName = 'e' ;
char myQuestion = '?' ;
77 Compiled By Sahile.T
D. Boolean Type
 Boolean is a data type used when we want to test a particular
condition during the execution of the program.

 There are only two values that a Boolean can take: true or
false.

 Boolean type is denoted by the keyword boolean and uses only


one bit of storage.

 All comparison operators return boolean type values.


 Boolean values are often used in selection and iteration
statements.
78 Compiled By Sahile.T
Declaration of Variables
 After designing suitable variable names, we must declare them to the
compiler. Declaration does three things:
1. It tells the compiler what the variable name is

2. It specifies what type of data the variable will hold

3. The place of declaration (in the program) declares the scope of the variable.

 A variable must be declared before it is used in the program.

 The general form of declaration of Variables is:


type variable1, variable2,...., variableN;

Example:
int count, x,y; //Declaration
char firstLetterOfName = 'e' ; // Declaration & initialization
79 Compiled By Sahile.T
Assigning Values to Variables
 A variable must be given a value after it has been declared but
before it is used in an expression in two ways :
 By using an assignment statement

 By using a read statement


Assignment Statement
 A simple method of giving value to a variable is through the
assignment statement as follows:
variableName = value;
Example: x = 123, y = -34;
 It is possible to assign a value to a variable at the time of
declaration as: type variableName = value;
Compiled By Sahile.T 80
10/05/2021
Keyboard Input
To assign value for variables interactively through the keyboard, we first
create a Scanner object, that is attached to the System.in data stream
object
 E.g. Scanner input = new Scanner(System.in);
Then use the various methods of the Scanner class to read input.
 For example, the nextLine() method reads a line of string input
 E.g. System.out.print("What is your name? ");
String name = in.nextLine();
nextInt(), nextDouble() etc are methods to read.
We must import java.util.*; package so as to use the Scanner class.
81 Compiled By Sahile.T
Sample Program for I/O
import java.util.*;
public class InputTest
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("What is your name? ");
String name = in.nextLine(); // gets first input
System.out.print("How old are you? ");
int age = in.nextInt(); // gets second input
System.out.println("Hello, " + name + ". Next year, you'll be " + (age + 1));
// display output on console
}
}

82 Compiled By Sahile.T
Scope of Variables
1. Instance Variables: are declared in a class, but outside a method,
constructor or any block.
• are created when an object is created with the use of the key word 'new' and destroyed
when the object is destroyed.

• They take different values for each object

2. Class Variables: are also known as static variables, are declared with
the static keyword in a class, but outside a method, constructor or a block.
• Are global to a class and belong to the entire set of objects that class creates.

• Only one memory location is created for each class variable.

3. Local Variables: are variables declared and used inside methods.


• Can also be declared inside program blocks that are define between { and }.
83 Compiled By Sahile.T
Chapter II
Control Structures

84 Compiled By Sahile.T
Introduction
 The statements inside your source files are generally executed
from top to bottom, in the order that they appear.

 Control flow statements, however, break up the flow of execution


by employing decision making, looping, and branching, enabling
your program to conditionally execute particular blocks of code.

 Two types of control structures in Java:

• Decision Making (if, switch, conditional Operator statements )

• Loops (while, do….while and for statements)


85 Compiled By Sahile.T
Section I: Decision Making Statements
 allows the code to execute a statement or block of statements
conditionally.

 Control the execution flow of a program causing a jump to any


point from its current location.

 Java supports types of decision making statements:

• if Statements

• switch Statements

86 Compiled By Sahile.T
Decision Making with if Statement
 The if statement is a powerful decision making statement.

 It is basically a two-way decision making statement and is used in


conjunction with an expression.

Test False
expression
?

True

 The if statement may be implemented in different forms depending


on the complexity of conditions to be tested:
87 Compiled By Sahile.T
1. Simple if Statement
 An if statement consists of a Boolean expression followed by one or
more statements.

 The syntax of an if statement is:


if (expression)
{
statement-block;
}
rest_of_program;

• If expression is true, statement-block is executed


and then rest_of_program.
• If expression is false, statement-block will be
skipped
88
& the execution will jump to the rest_of_program
Compiled By Sahile.T
2. if … else Statement
 The syntax of an if statement is:
if (expression)
{
True-block statement(s);
}
else
{
False-block statement(s);
}
rest_of_program;

 If expression is true, True-block statement is executed and followed by


rest_of_program block.

 If expression is false, False-block Statement is excuted followed by


rest_of_program block.
89 Compiled By Sahile.T
3. if … else if (else if Ladder) Statement
 Is used when multiple decisions are involved.
 A multiple decision is a chain of ifs in which the which the
statement associated with each else is an if.
 The conditions are evaluated from the top(of the ladder),
downwards.
 As soon as the true condition is found, the statement associated
with it is executed and the control will skip the rest of the ladder.

 When all the conditions become false, then the final else
containing the default statement will be executed.
 The syntax of an if …. else if statement is:
90 Compiled By Sahile.T
if (expression 1)
{
statement(s)-1;
}
else if (expression 2)
{
statement(s)-2;
}
...
else if (expression n)
{
statement(s)-n;
}
else
default-statement;
rest_of_program;

91 Compiled By Sahile.T
4. Nested if … else Statement
 if…else statements can be put inside other if…else
statements. such statements are called nested if … else
statements.
 Is used whenever we need to make decisions after
checking a given decision.
 The syntax of a nested if…else statement is shown in the
next slide.
.

92 Compiled By Sahile.T
if (expression 1)
{
statement(s)-1;
if (expression 1.1)

}
{
True-block Statement 1.1
} Nested if statement
else
{
Falsse-block Statement 1.1
}

}
else if (expression 2)
{
statement(s)-2;
}
...
else if (expression n)
{
statement(s)-n;
}
else
default-statement;

rest_of_program;
93 Compiled By Sahile.T
Switch statement
 We can design a program with multiple alternatives using if
statements to control the selection.

 But the complexity of such programs increases dramatically when


the number alternatives increases.

 Java has a multiway decision statement called switch statement.


 The switch statement tastes the value of a given
variable(expression) against a list of case values and when a
match is found, a block of statements associated with that case is
executed.
94 Compiled By Sahile.T
Switch syntax
switch (expression)
{
case value-1:
statement-block 1;
break;
case value-2:
statement-block 2;
break;
......
......
default:
default_statement;
break;
}
rest_of_program
95 Compiled By Sahile.T
Contd.
 The expression must evaluate to a char, short or int, but not long,
float or double.

 The values value-1, value-2, value-3, … are constants or constant


expressions (evaluable to an integral constant) and are known as
case labels.

 Each of the case labels should be unique within the switch


statement.

 statement-block1,statement-block2,…. Are statement lists and


may contain zero or more statements.
96 Compiled By Sahile.T
Contd.
 There is no need to put braces around the statement blocks of a switch
statement but it is important to note that case labels end with a colon
(:).

 When the switch is executed, the value of the expression is


successfully compared against the values value-2, value-2, ….

 If a case is found whose value matches with the value of the


expression, then the block of the statement(s) that follows the case are
executed; otherwise the default-statement will be executed.

 The break statement at the end of each block signals the end of a
particular case and causes an exit from the switch statement.
97 Compiled By Sahile.T
The ?: (Conditional)Operator
 Is useful for making a two-way decisions.
 This operator is a combination of ? and : and takes three operands.

General formula:
conditional expression ? Expression1:expression2;

 The conditional expression is evaluated first. If the result is true,


expression1 is evaluated and is returned as the value of the
conditional expression. Otherwise, expression2 is evaluated and its
value is returned.

98 Compiled By Sahile.T
Exercise
1. Find out Errors in the following program and discuss ways for correction.
a) //Errors.java
public Class Errors{
public void main(String [] args){
int i, j = 32768;
short s = j;
double m = 5.3f, n = 2.1f;
float x = 5.3, y = 2.1;
byte z = 128;
System.out.println("x % y = "+x % y);
boolean b = 1 ;
if (b) System.out.println(“b is true”);
else System.out.println(“b is false”);
}
}

99 Compiled By Sahile.T
2. Write a Java application program that asks the user to enter two numbers obtains the
numbers from the user and prints the sum, product, difference and quotient of the
numbers?
3. Write a Java application program that asks the user to enter two integers, obtains the
numbers from the user and displays the larger number followed by the words “is
larger than “ the smaller number in the screen. If the numbers are equal, print the
message “These numbers are equal.”
4. Write four different Java statements that each add 1 to integer variable x.
5. Rewrite each of the following without using compound relations:
a) if(grade<=59 && grade>=50)
second+=1; 6. Write a Java application program
b) if(num>100 || num<0) that reads the coefficients of a
System.out.prinln(“Out of Range”); quadratic equation (ax2+bx+c=0),
else generates and display the roots.
Note:
sum+=num;
An appropriate message should be
c) If((M>60 && N>60)||T>200) generated when the user types an
y=1; invalid input to the equation.
else
y=0;
100 Compiled By Sahile.T
Chapter II Section II
Decision Making and Looping

101 Compiled By Sahile.T


Introduction
 The process of repeatedly executing a block of statements is
known as looping.

 A loop allows you to execute a statement or block of statements


repeatedly.

 The statements in the block may be executed any number of


times, from zero to infinite number.

 If a loop continues forever, it is called an infinite loop.


 In looping, a sequence of statements are executed until some
conditions from the termination of the loop are satisfied.
102
Compiled By Sahile.T
Contd.
 A program loop consists of two statements:
1. Body of the loop.
2. Control statements.

 The control statement tests certain conditions and then directs the
repeated execution of the statements contained in the body of the loop.

 A looping process, in general, would include the ff. four steps:


1. Setting and initialization of a counter .
2. Execution of the statements in the loop.
3. Test for a specified condition for execution of the loop.
4. Increment/Decrement the counter.
103 Compiled By Sahile.T
Contd.
 Depending on the position of the control statement in the loop, a control
structure can be either as the entry-controlled loop or as exit-controlled
loop.
 In entry-controlled loop, the control conditions are tested before the start
of the loop execution.
 In exit-controlled loop, the test is performed at the end of the body of the
loop and therefore the body is executed unconditionally for the first time.
 Three types of loops in java:
1. while loops:
2. do …while loops:
3. for loops:

104 Compiled By Sahile.T


1. The while loop
 Is the simplest of all the looping structures in Java.
 The while loop is an entry-controlled loop statement.
 The while loop executes as long as the given logical expression
between parentheses is true. When expression is false, execution
continues with the statement immediately after the body of the
loop block.

 The expression is tested at the beginning of the loop, so if it is


initially false, the loop will not be executed at all.

105 Compiled By Sahile.T


Contd.
 The basic format of the while statement is:
Example:
initialization; int sum=0,n=1;
while (expression) while(n<=100)
{
{
sum+=n;
Body of the loop; n++;
} }
System.out.println(“Sum=“+sum;

 The body of the loop may have one or more statements.


 The braces are needed only if the body contains two or more
statements. However it is a good practice to use braces even if
the body has only one statement.
106 Compiled By Sahile.T
2. The do…while loop
 Unlike the while statement, the do… while loop executes the body of the loop before
the test is performed.
initialization;
do
Syntax for do…while loop {
Body of the loop;
}
while (expression);

 On reaching the do statement, the program proceeds to evaluate the body of loop
first.

 At the end of the loop, the test condition in the while statement is evaluated. If it is
true, the program continues to evaluate the body of the loop once again.
107 Compiled By Sahile.T
Contd.
 When the condition becomes false, the loop will be terminated and
the control goes to the statement that appears immediately after the
while statement.
 The while loop is an exit-controlled loop statement.
Example:
int sum=0,n=1;
do
{
sum+=n;
n++;
} while(n<=100);
System.out.println(“Sum=“+sum;
108 Compiled By Sahile.T
3. The for loop
 Is another entry-controlled loop that provides a more concise loop controlled
structure.
 Syntax for the for loop is:
for(initialization; test condition; increment)
{
Body of the loop;
}

 We use the for loop if we know in advance for how many times the body of the
loop is going to be executed.
 But use do…. while loop if you know the body of the loop is going to be executed
at least once.
109 Compiled By Sahile.T
Contd.
 The execution of the for loop statement is as follows:
1. Initialization of the control variable(s) is done first, using
assignment statement.

2. The value of the control variable is tested using the test


condition. The test condition is a relation operation that
determines when the loop will exit.
 If the condition is true, the body of the loop is executed;
otherwise the loop is terminated and the execution continues with
the statement that immediately follows the loop.

110 Compiled By Sahile.T


Contd.
3. When the body of the loop is executed, the control is transferred
back to the for statement after evaluating the last statement in the
loop.
 Now the new value of the control variable is again tested to see
whether it satisfies the loop condition; if it does, the body of the
loop is again executed.

Example int sum=0;


for(n=1; n<=100; n++)
{
sum=sum+n;
}
System.out.println(“Sum is:”+sum);
111 Compiled By Sahile.T
Additional Features of for loop
A. More than one variable, separated by comma, can be initialized
at a time in the for statement.
Example:
for(sum=0, i=1; i<=100; i++)
{
sum=sum+i;
}
B. Increment section may also have more than one part.
Example:
for(i=0, j=0; i*j < 100; i++, j+=2)
{
System.out.println(i * j);
}
112 Compiled By Sahile.T
C. The test condition may have any compound relation and the
testing need not be limited only to the loop control variable.

Example:
for(sum=0, i=1; i<20 && sum<100; ++i)
{
sum=sum+i;
}
D. You do not have to fill all three control sections, one or more
sections can be omitted but you must still have two
semicolons.
Example:
int n = 0;
for(; n != 100;) {
System.out.println(++n);
}
113 Compiled By Sahile.T
Nesting of for loops
 You can nest loops of any kind one inside another to any depth.
Example:
for(int i = 10; i > 0; i--)
{
while (i > 3)
{
if(i == 5){
Inner Outer
break; Loop Loop
}
System.out.println(i);
i--;
}
System.out.println(i*2);
}
114 Compiled By Sahile.T
Jumps in Loops
 Jump statements are used to unconditionally transfer the program
control to another part of the program.
 Java has three jump statements: break, continue, and return.

1. The break statement
 A break statement is used to abort the execution of a loop. The
general form of the break statement is given below:
break label;
 It may be used with or without a label.
 When it is used without a label, it aborts the execution of the
innermost switch, for, do, or while statement enclosing the break
statement. When used with a label, the break statement aborts the
execution of any enclosing statement matching the label.
 A label is an identifier that uniquely identifies a block of code.
115 Compiled By Sahile.T
Examples:
1) Outer: for( int k=1; k< 10; k++){
int i=k;
     while ( i < 5) {
        if(i%5==0) break Outer; // jump out of both loops
System.out.print(“ “+i);
i++;
        }
    Syetem.out.println(“Outer Loop”);
   }
2) int i=1;
while ( i < 10) {
       if(i%2==0) break; 
System.out.println(“ “+i);
     }
     System.out.println(“Out of the while loop”);

116
2. The continue statement
 is used to alter the execution of the for, do, and while statements.
 The general form of the continue statement is:

continue label;
 It may be used with or without a label. When used without a label,
it causes the statement block of the innermost for, do, or while
statement to terminate and the loop’s boolean expression to be re-
evaluated to determine whether the next loop repetition should take
place.

117 Compiled By Sahile.T


Contd.
 When it is used with a label, the continue statement transfers
control to an enclosing for, do, or while statement matching the
label.

Example:
int sum = 0;
for(int i = 1; i <= 10; i++){
if(i % 3 == 0) {
continue;
}
sum += i;
}
What is the value of sum?
1 + 2 + 4 + 5 + 7 + 8 + 10 = 37
118 Compiled By Sahile.T
3. The return Statement
 A return statement is used to transfer the program control to the
caller of a method.
 The general form of the return statement is given below:

return expression;
 If the method is declared to return a value, the expression used
after the return statement must evaluate to the return type of that
method. Otherwise, the expression is omitted.

119 Compiled By Sahile.T


//Use of Continue and break Statements
class ContinueBreak
{
public static void main(String [ ]args)
{ *
Loop1: for(int i=1; i<100; i++) ** Output
{
***
System.out.println(" ");
if (i>=8) break;
****
for (int j=1; j<100; j++) *****
{ ******
System.out.print("*"); *******
if (j==i) continue Loop1; Termination by BREAK
}
}
System.out.print("Termination by BREAK");
}
}
120 Compiled By Sahile.T
Exercise
1. What do the following program print?

public class Mystery3{


public static void main(String args[]){
int row = 10, column;
while(row >= 1){
column = 1;
while(column <= 10){
System.out.print(row % 2 == 1 ? “<” : “>”);
++column;
}
--row;
System.out.println();
}
}
}

121 Compiled By Sahile.T


2. Write a Java application program that asks the user to enter an integer number from
the keyboard and computes the sum of the digits of the number.
[ Hint: if the user types 4567as input , then the output will be 22 ]
3. Given a number, write a program using while loop to reverse the digits of the
number. [ Hint: Use Modulus Operator to extract the last digit and the integer division by 10 to get
the n-1 digit number from the n digit]
4. Using a two-dimensional array, write codes that print the following outputs.

a) c) 5
$ $ $ $ $ 454
$ $ $ $ 34543
$ $ $ 2345432
$ $ 123454321
$
b) 1
d) 1 2 3 4 5 4 3 2 1
1 2
1234321
1 2 3 12321
1 2 3 4 121
1 2 3 4 5 1
122 Compiled By Sahile.T
Chapter II Section III
Arrays and Strings

123 Compiled By Sahile.T


Arrays
An array is a group of contiguous or related data items that share a
common name.
is a container object that holds a fixed number of values of a single
type.
Unlike C++ in Java arrays are created dynamically.
An array can hold only one type of data!
Example:
int[] can hold only integers
char[] can hold only characters
A particular values in an array is indicated by writing a number called
index number or subscript in brackets after the array name.
Example:
slaray[10] represents salary of the 10th employee.
124 Compiled By Sahile.T
Contd.
The length of an array is established when the array is created.
After creation, its length is fixed.

Each item in an array is called an element, and each element is


accessed by its numerical index.

Array indexing starts from 0 and ends at n-1, where n is the size
of the array.
index values

primes[0] primes[1] primes[2] primes[3] primes[4] primes[9]

125 Compiled By Sahile.T


One-Dimensional Arrays
A list of items can be given one variable name using only one
subscript and such a variable is called a single-subscripted
variable or a one-dimensional array.

Creating an Array
Like any other variables, arrays must be declared and created
in the computer memory before they are used.
Array creation involves three steps:
1. Declare an array Variable
2. Create Memory Locations
3. Put values into the memory locations.
126 Compiled By Sahile.T
1. Declaration of Arrays
Arrays in java can be declared in two ways:
i. type arrayname [ ];
ii. type[ ]arrayname;
Example:
int number[];
float slaray[];
float[] marks;

when creating an array, each element of the array receives a


default value zero (for numeric types) ,false for boolean and null
for references (any non primitive types).
127 Compiled By Sahile.T
2. Creation of Arrays
After declaring an array, we need to create it in the memory.
Because an array is an object, you create it by using the new
keyword as follows:
arrayname =new type[ size];
Example:
number=new int(5);
marks= new float(7);

It is also possible to combine the above to steps , declaration and


creation, into on statement as follows:

type arrayname =new type[ size];

Example: int num[ ] = new int[10];


128 Compiled By Sahile.T
3. Initialization of Arrays
Each element of an array needs to be assigned a value; this
process is known as initialization.
Initialization of an array is done using the array subscripts as
follows:
arrayname [subscript] = Value;
Example:
number [0]=23;
number[2]=40;

Unlike C, java protects arrays from overruns and under runs.

Trying to access an array beyond its boundaries will generate an


error.
129 Compiled By Sahile.T
Contd.
Java generates an ArrayIndexOutOfBoundsException when there
is underrun or overrun.

The Java interpreter checks array indices to ensure that they are
valid during execution.

Arrays can also be initialized automatically in the same way as


the ordinary variables when they are declared, as shown below:
type arrayname [] = {list of Values};
Example:
int number[]= {35,40,23,67,49};
130 Compiled By Sahile.T
Contd.
It is also possible to assign an array object to another array object.
Example:
int array1[]= {35,40,23,67,49};
int array2[];
array2= array1;

Array Length
In Java, all arrays store the allocated size in a variable named
length.
We can access the length of the array array1using array1.length.
Example:
int size = array1.length;
131 Compiled By Sahile.T
//sorting of a list of Numbers if (num[i] < num [j])
class Sorting {
{ //Interchange Values
public static void main(String [ ]args) int temp = num[i];
{ num [i] = num [j];
int num[ ]= {55, 40, 80, 12, 65, 77}; num [j] = temp;
int size = num.length; }
System.out.print(“Given List: “); }
for (int i=0; i<size; i++) }
{ System.out.print("SORTED LIST" );
System.out.print(" " + num[ i ] ); for (int i=0; i<size; i++)
} {
System.out.print("\n"); System.out.print(" " " + num [i]);
//Sorting Begins }
for (int i=0; i<size; i++) System.out.println(" ");
{ }
for (int j=i+1; j<size; j++) }
{
132 Compiled By Sahile.T
Two-Dimensional Arrays
A 2-dimensional array can be thought of as a grid (or matrix) of
values.
Each element of the 2-D array is accessed by providing two
indexes: a row index and a column index
A 2-D array is actually just an array of arrays.
A multidimensional array with the same number of columns in
every row can be created with an array creation expression:
Example:
int myarray[][]= int [3][4];
133 Compiled By Sahile.T
Contd.
Like the one-dimensional arrays, two-dimensional arrays may be
initialized by following their declaration with a list of initial values
enclosed in braces. For example,
int myarray[2][3]= {0,0,0,1,1,1};
or
int myarray[][]= {{0,0,0},{1,1,1}};
We can refer to a value stored in a two-dimensional array by using
indexes for both the column and row of the corresponding
element. For Example,
int value = myarray[1][2];
134 Compiled By Sahile.T
//Application of two-dimensional Array
class MulTable{
final static int ROWS=12;
final static int COLUMNS=12;
public static void main(String [ ]args) {
int pro [ ] [ ]= new int [ROWS][COLUMNS];
int i=0,j=0;
System.out.print("MULTIPLICATION TABLE");
System.out.println(" ");
for (i=1; i<ROWS; i++)
{
for (j=1; j<COLUMNS; j++)
{
pro [i][j]= i * j;
System.out.print(" "+ pro [i][j]);
}
System.out.println(" " );
}
}
}
135 Compiled By Sahile.T
Variable Size Arrays
Java treats multidimensional array as “array of arrays”.
It is possible to declare a two-dimensional array as follows:
int x[][]= new int[3][];
x[0] = new int[2];
x[1] = new int[4];
x[2] = new int[3];
This statement creates a two-dimensional array having different
length for each row as shown below:
x[0][1]
X[0]
X[1]

X[2] x[1][3]

x[2][1]
136 Compiled By Sahile.T
Chapter II

Section: III Strings in Java

137 Compiled By Sahile.T


Introduction
Strings represent a sequence of characters.
The easiest way to represent a sequence of characters in Java is by
using a character:
char ch[ ]= new char[4];
ch[0] = ‘D’;
ch[1] = ‘a’;
ch[2] = ‘t;
ch[3] = ‘a;
This is equivalent to String ch=“Hello”;
Character arrays have the advantage of being able to query their
length.
But they are not good enough to support the range of operations
we may like to perform on strings.
138 Compiled By Sahile.T
Contd.
In Java, strings are class objects and are implemented using two
classes:
String class
StringBuffer

Once a String object is created it cannot be changed. Strings are


Immutable.
To get changeable strings use the StringBuffer class.
A Java string is an instantiated object of the String class.
Java strings are more reliable and predictable than C++ strings.
A java string is not a character array and is not NULL terminated.

139 Compiled By Sahile.T


Contd.
In Java, strings are declared and created as follows:
String stringName;
stringName= new String(“String”);
Example:
String firstName;
firstName = new String(“Jhon”);
The above two statements can be combined as follows:
String firstName= new String(“Jhon”);
The length() method returns the length of a string.
Example: firstName.length(); //returns 4
140 Compiled By Sahile.T
String Arrays
It is possible to create and use arrays that contain strings as
follows:
String arrayname[] = new String[size];
Example:
String item[]= new String[3];
item[0]= “Orange”;
item[1]= “Banana”;
item[2]= “Apple”;
It is also possible to assign a string array object to another string
array object.

141 Compiled By Sahile.T


String Methods
1. The length(); method returns the length of the string.
Eg: System.out.println(“Hello”.length()); // prints 5
 The + operator is used to concatenate two or more strings.
Eg: String myname = “Harry”
String str = “My name is” + myname+ “.”;
2. The charAt(); method returns the character at the specified
index.
Syntax : public char charAt(int index)
Ex: char ch;
ch = “abc”.charAt(1); // ch = “b”

142 Compiled By Sahile.T


Contd.
3. The equals(); method returns ‘true’ if two strings are equal.
Syntax : public boolean equals(Object anObject)
Ex: String str1=“Hello”,str2=“hello”;
(str1.equals(str2))? System.out.println(“Equal”); : System.out.println(“Not
Equal”); // prints Not Equal

4. The equalsIgnoreCase(); method returns ‘true’ if two strings


are equal, ignoring case consideration.
Syntax : public boolean equalsIgnoreCase(String str)
Ex: String str1=“Hello”,str2=“hello”;
if (str1.equalsIgnoreCase(str2))
System.out.println(“Equal”);
System.out.println(“Not Equal”); // prints Equal as an output
143 Compiled By Sahile.T
Contd.
5. The toLowerCase(); method converts all of the characters in a
String to lower case.
Syntax : public String toLowerCase( );
Ex: String str1=“HELLO THERE”;
System.out.println(str1.toLowerCase()); // prints hello there
6. The toUpperCase(); method converts all of the characters in a
String to upper case.
Syntax : : public String toUpperCase( );
Ex: System.out.println(“wel-come”.toUpperCase()); // prints WEL-COME
7. The trim(); method removes white spaces at the beginning and
end of a string.
Syntax : public String trim( );
Ex: System.out.println(“ wel-come ”.trim()); //prints wel-come
144 Compiled By Sahile.T
Contd.
8. The replace(); method replaces all appearances of a given
character with another character.
Syntax : public String replace( ‘ch1’, ’ch2’);
Ex: String str1=“Hello”;
System.out.println(str1.replace(‘l’, ‘m’)); // prints Hemmo
9. comparetTo(); method Compares two strings lexicographically.
 The result is a negative integer if the first String is less than the second
string.
 It returns a positive integer if the first String is greater than the second
string. Otherwise the result is zero.
Syntax : public int compareTo(String anotherString);
public int compareToIgnoreCase(String str);
Ex: (“hello”.compareTo(“Hello”)==0) ? System.out.println(“Equla”); :
System.out.println(“Not Equal”); //prints Not Equal
145 Compiled By Sahile.T
Contd.
10.The concat(); method concatenates the specified string to the end
of this string.
Syntax : public String concat(String str)
Ex: System.out.println("to".concat("get").concat("her“)); // returns
together

146 Compiled By Sahile.T


Contd.
12.The substring(); method creates a substring starting from the
specified index (nth character) until the end of the string or until
the specified end index.
Syntax : public String substring(int beginIndex);
public String substring(int beginIndex, int endIndex);
Ex: "smiles".substring(2); //returns "ile“
"smiles".substring(1, 5); //returns "mile“
13. The startsWith(); Tests if this string starts with the specified prefix.
Syntax: public boolean startsWith(String prefix);
Ex: “Figure”.startsWith(“Fig”); // returns true
14. The indexOf(); method returns the position of the first occurrence
of a character in a string either starting from the beginning of the
string or starting from a specific position.
147 Compiled By Sahile.T
Contd.
 public int indexOf(int ch); Returns the index of the first
occurrence of the character within this string starting from the
first position.
 public int indexOf(String str); - Returns the index of the first
occurrence of the specified substring within this string.
 public int indexOf(char ch, int n); - Returns the index of the first
occurrence of the character within this string starting from the
nth position.
Ex: String str = “How was your day today?”;
str.indexOf(‘t’); // prints 17
str.indexOf(‘y’, 17); // prints 21
str.indexOf(“was”); // Prints 4
str.indexOf("day",10)); //Prints 13

148 Compiled By Sahile.T


Contd.
15. The lastIndexOf(); method Searches for the last occurrence of a
character or substring.
The methods are similar to indexOf() method.
16. valueOf(); creates a string object if the parameter or converts the
parameter value to string representation if the parameter is a variable.
Syntax: public String valueOf(variable);
public String valueOf(variable);
Ex: char x[]={'H','e', 'l', 'l','o'};
System.out.println(String.valueOf(x));//prints Hello
System.out.println(String.valueOf(48.958)); // prints 48.958
17. endsWith(); Tests if this string ends with the specified suffix.
Syntax: public boolean endsWith(String suffix);
Ex: “Figure”.endsWith(“re”); // true
149 Compiled By Sahile.T
Exercise
1. Consider a two-by-three integer two-dimensional array named array3.
a) Write a statement that declares and creates array3.
b) Write a single statement that sets the elements of array3 in row 1 and
column 2 as zero.
c) Write a series of statements that initializes each element of array3 to 1.
d) Write a nested for statement that initializes each element of array3 to
two.
e) Write a nested for statement that inputs the values for the elements of
array3 from the user.
f) Write a series of statements that determines and prints the smallest value
in array3.
g) Write a statement that displays the elements of the first row of array3.
h) Write a statement that totals the elements of the third column array3.
150 Compiled By Sahile.T
Contd.
2. Write a Java application program which adds all the numbers , except
those numbers which are multiples of three, between 1 and 100.
(Hint: use continue statement)

3. Write a program which reads the values for two matrices and
displays their product.

4. Write a program, which will read a string and rewrite it in


alphabetical order.

5. Write a java application program which reads a paragraph and


displays the number of words within the paragraph.

151

You might also like