Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Reading Material
Of
403- JAVA Programming
I N D E X
Sr No Description Page No.
Unit- 1 Introduction to Java 1
Unit-2 Basic Concepts 6
Unit-3 Classes and Objects 16
Unit-4 Applet 36
Unit-5 5.1 Multithreading 48
5.2 Exception Handling 58
403- JAVA Programming Unit-1 SDJ International College
1 | P a g e P r o f . R o n a k P a n c h a l
Unit 1. Introduction to Java
1.1. Properties of Java
1.2. Comparison of java with C++
1.3. Java Compiler
1.4. Java Interpreter
What is Java? Java is a programming language and a platform. Java is a high level, robust, secured and object-oriented
programming language. Currently, Java is used in internet programming, mobile devices, games, e-
business solutions etc.
Java latest version is “Java SE 11 (18.9 LTS)” . It released in September 2018
Java Future release version is “Java SE 12 (19.3)” and it will be release at March 2019
History of Java 1) James Gosling, Mike Sheridan, and Patrick Naughton initiated the Java language project in June
1991. The small team of sun engineers called Green Team.
2) Originally designed for small, embedded systems in electronic appliances like set-top boxes.
3) Firstly, it was called "Greentalk" by James Gosling and file extension was .gt.
4) After that, it was called Oak and was developed as a part of the Green project.
6) In 1995, Oak was renamed as "Java" because it was already a trademark by Oak Technologies.
Why Java name for java language? The team gathered to choose a new name. The suggested words were "dynamic", "revolutionary",
"Silk", "jolt", "DNA" etc. They wanted something that reflected the essence of the technology:
revolutionary, dynamic, lively, cool, unique, and easy to spell and fun to say.
According to James Gosling "Java was one of the top choices along with Silk". Since java was so
unique, most of the team members preferred java.
Java is an island of Indonesia where first coffee was produced (called java coffee).
Notice that Java is just a name not an acronym.
Originally developed by James Gosling at Sun Microsystems (which is now a subsidiary of Oracle
Corporation) and released in 1995.
In 1995, Time magazine called Java one of the Ten Best Products of 1995.
JDK 1.0 released in(January 23, 1996).
Where it is used? According to Sun, 3 billion devices run java. There are many devices where java is currently used. Some
of them are as follows:
1. Desktop Applications such as acrobat reader, media player, antivirus etc.
2. Web Applications such as irctc.co.in.
3. Enterprise Applications such as banking applications.
4. Mobile
5. Embedded System
6. Smart Card
7. Robotics
8. Games etc.
403- JAVA Programming Unit-1 SDJ International College
2 | P a g e P r o f . R o n a k P a n c h a l
Types of Java Applications 1) Standalone Application
2) Web Application
3) Enterprise Application
4) Mobile Application
Features of Java There is given many features of java. They are also known as java buzzwords. The Java Features given
below are simple and easy to understand.
1. Simple
2. Object-Oriented
3. Platform independent
4. Secured
5. Robust
6. Architecture neutral
7. Portable
8. Dynamic
9. Interpreted
10. High Performance
11. Multithreaded
12. Distributed
Simple Program of Java To create a simple java program, you need to create a class that contains main method. Let's understand
the requirement first.
Requirement for Hello Java Example
For executing any java program, you need to
install the JDK if you don't have installed it, download the JDK and install it.
set path of the jdk/bin directory.
create the java program
compile and run the java program
Eg: class Simple{
public static void main(String args[]){
System.out.println("Hello Java");
} }
save this file as Simple.java
To compile: javac Simple.java
To execute: java Simple
Output: Hello Java
Understanding first java program
http://www.oracle.com/technetwork/java/javase/downloads/index.html
403- JAVA Programming Unit-1 SDJ International College
3 | P a g e P r o f . R o n a k P a n c h a l
Let's see what is the meaning of class, public, static, void, main, String[], System.out.println().
403- JAVA Programming Unit-1 SDJ International College
4 | P a g e P r o f . R o n a k P a n c h a l
class keyword is used to declare a class in java.
public keyword is an access modifier which represents visibility, it means it is visible to all.
static is a keyword, if we declare any method as static, it is known as static method. The core
advantage of static method is that there is no need to create object to invoke the static method.
The main method is executed by the JVM, so it doesn't require to create object to invoke the
main method. So it saves memory.
void is the return type of the method, it means it doesn't return any value.
main represents startup of the program.
String[] args is used for command line argument.
System.out.println() is used print statement.
How to set path in Java There are 2 ways to set java path:
1. temporary
2. permanent
How to set Temporary Path of JDK in Windows
To set the temporary path of JDK, you need to follow following steps:
Open command prompt
copy the path of jdk/bin directory
write in command prompt: set path=copied_path
For Example:
set path=C:\Program Files\Java\jdk1.6.0_23\bin
JVM
JVM (Java Virtual Machine) is an abstract machine. It is a specification that provides runtime
environment in which java byte code can be executed.
JVMs are available for many hardware and software platforms. JVM, JRE and JDK are platform
dependent because configuration of each OS differs. But, Java is platform independent.
The JVM performs following main tasks:
Loads code
Verifies code
Executes code
Provides runtime environment
JRE
JRE is an acronym for Java Runtime Environment. It is used to provide runtime environment. It is the
implementation of JVM.It physically exists. It contains set of libraries + other files that JVM uses at
runtime.
Implementation of JVMs is also actively released by other companies besides Sun Micro Systems.
JDK JDK is an acronym for Java Development Kit. It physically exists. It contains JRE + development tools.
JDK Includes Javac(Java compiler), Java (Interpreter), JDB(Java Debugger) , and Applet Viewer.
403- JAVA Programming Unit-1 SDJ International College
5 | P a g e P r o f . R o n a k P a n c h a l
Comparison of java with C++
Java C++
Java is a true and complete object oriented
language.
C++ is an extension of C with object oriented
behavior. C++ is not a complete object oriented
language as that of Java.
Java does not provide template classes. C++ offers Template classes.
Java supports multiple inheritance using
interface.
C++ achieves multiple inheritance by permitting
classes to inherit from multiple classes.
Java does not provide global variables. Global variables can be declared in C++.
Java does not support pointers. C++ supports pointers.
In Java, destruction of objects is performed in
finalize method.
In C++, destruction of objects is performed by
destructor function.
Java doesn’t provide header files. C++ has header files.
Write once, run anywhere / everywhere (WORA / WORE).
Write once, compile anywhere (WOCA).
Java program Structure.
Documentation Section
Package Statement
Import Statements
Interface Statements
Class Definitions
Main Method Class
{
Main Method Definition
}
Document Section
The documentation section comprises a set of comment lines giving the name of the program, the
author and other details, Comments must explain why and what of classes and how of algorithms. This
would greatly help in maintaining the program.
We can write comments in java in two ways.
a. Single Line comments: It start with two forward slashes (//) and continue to the end of the current
line. Line comments do not require an ending symbol.
b. Multiple line comments start with a forward slash and an asterisk (/*) and end with an asterisk and a
forward slash (*/).Block comments can also extend across as many lines as needed.
https://en.wikipedia.org/wiki/Write_once%2C_run_anywherehttps://en.wikipedia.org/wiki/Write_once%2C_run_anywherehttps://en.wikipedia.org/wiki/Write_once%2C_compile_anywhere
403- JAVA Programming Unit-1 SDJ International College
6 | P a g e P r o f . R o n a k P a n c h a l
Package Statement The first statement allowed in a Java file is a package statement. This statement
declares a package name and informs the compiler that the classes defined here belong to this package.
Example: Package student; The package statement is optional.
Import Statements The next thing after a package statement (but before any class definitions) may be a
number of import statements. This is similar to the #include statement in C. Example: import student.
test; This statement instructs the interpreter to load the test class contained in the package student.
Using import statements, we can have access to classes that are part of other named packages.
Interface Statements An interface is like a class. This is also an optional section and 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 the objects of real-world problems.
The number of classes used depends on the complexity of the problem.
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 the control passes back to the operating system.
Disclaimer: The study material is compiled by Prof. Nainesh J. Gathiyawala. The basic objective of this material is to supplement teaching and discussion in the classroom in the subject. Students are required to go for extra reading in the subject through library work.
403- JAVA Programming Unit-2 SDJ International College
7 | P a g e P r o f . R o n a k P a n c h a l
Unit 2. Basic Concepts
Identifier, Literals , Operators , Variables
Keywords
Data Types
Branching: If – Else, Switch
Looping : While, Do-while , For
Type Casting.
Strings
Basic String operations
String comparison
String Buffer class.
Variable:
Variable is used to store values. It value may change during program execution.
int data=50;//Here data is variable
Types of Variable
There are three types of variables in java
local variable
instance variable
static variable
Local Variable
A variable that is declared inside the method is called local variable.
Instance Variable
A variable that is declared inside the class but outside the method is called instance
variable.
Static variable
A variable that is declared as static is called static variable. It cannot be local.
Example to understand the types of variables
class A
{
int data=50;//instance variable
static int m=100;//static variable
void method()
{
int n=90;//local variable
}
403- JAVA Programming Unit-2 SDJ International College
8 | P a g e P r o f . R o n a k P a n c h a l
}
403- JAVA Programming Unit-2 SDJ International College
9 | P a g e P r o f . R o n a k P a n c h a l
Data Types in Java
In java, there are two types of data types
primitive data types
non-primitive data types
Data
Type
Default
Value
Default
Size
boolean False 1 bit
Char '\u0000' 2 byte
Byte 0 1 byte
short 0 2 byte
Int 0 4 byte
Long 0L 8 byte
Float 0.0f 4 byte
double 0.0d 8 byte
Why char uses 2 byte in java and what is \u0000 ? Because java uses Unicode system rather than ASCII code system. \u0000 is the lowest range of
Unicode system.
Operators in java
Operator is a symbol that is used to perform operations. Java provides a rich set of
operators to manipulate variables. We can divide all the Java operators into the following
groups:
Arithmetic Operators
Relational Operators
Bitwise Operators
Logical Operators
Assignment Operators
Misc Operators
Bitwise operator
Java defines several bitwise operators, which can be applied to the integer types, long, int,
short, char, and byte.
The following table lists the bitwise operators.
403- JAVA Programming Unit-2 SDJ International College
10 | P a g e P r o f . R o n a k P a n c h a l
A=60 , B=13
1. & (bitwise and)
Binary AND Operator copies a bit to the result if it exists in both operands.
Example: (A & B) will give 12 which is 0000 1100
2. | (bitwise or)
Binary OR Operator copies a bit if it exists in either operand.
Example: (A | B) will give 61 which is 0011 1101
3. ^ (bitwise XOR)
Binary XOR Operator copies the bit if it is set in one operand but not both.
Example: (A ^ B) will give 49 which is 0011 0001
4. ~ (bitwise compliment)
Binary Ones Complement Operator is unary and has the effect of 'flipping' bits.
Example: (~A ) will give -61 which is 1100 0011 in 2's complement form due to a signed binary
number.
5. (right shift)
Binary Right Shift Operator. The left operands value is moved right by the number of bits
specified by the right operand.
Example: A >> 2 will give 15 which is 1111
7. >>> (zero fill right shift)
Shift right zero fill operators. The left operands value is moved right by the number of bits
specified by the right operand and shifted values are filled up with zeros.
Example: A >>>2 will give 15 which is 0000 1111
Type casting
Assigning a value of one type to a variable of another type is known as Type Casting.
If two types are compatible then java will perform the conversion automatically.
If two types are incompatible then we have to use a cast, which perform an explicit
conversion.
403- JAVA Programming Unit-2 SDJ International College
11 | P a g e P r o f . R o n a k P a n c h a l
In Java, type casting is classified into two types,
403- JAVA Programming Unit-2 SDJ International College
12 | P a g e P r o f . R o n a k P a n c h a l
1. Widening Casting (Implicit)
Automatic Type casting take place when,
the two types are compatible
the target type is larger than the source type
Example :
public class Test
{
public static void main(String[] args)
{
int i = 100;
long l = i; //no explicit type casting required
float f = l; //no explicit type casting required
System.out.println("Int value "+i);
System.out.println("Long value "+l);
System.out.println("Float value "+f);
}
}
Output :
Int value 100
Long value 100
Float value 100.0
2. Narrowing or Explicit type conversion:
When you are assigning a larger type value to a variable of smaller type, then you need to
perform explicit type casting.
Example : public class Test
{
403- JAVA Programming Unit-2 SDJ International College
13 | P a g e P r o f . R o n a k P a n c h a l
public static void main(String[] args)
403- JAVA Programming Unit-2 SDJ International College
14 | P a g e P r o f . R o n a k P a n c h a l
{
double d = 100.04;
long l = (long)d; //explicit type casting required
int i = (int)l; //explicit type casting required
System.out.println("Double value "+d);
System.out.println("Long value "+l);
System.out.println("Int value "+i);
}
}Output :
Double value 100.04
Long value 100
Int value 100
Command Line Argument
The java command-line argument is an argument i.e. passed at the time of running the java
program.
The arguments passed from the console can be received in the java program and it can be used
as an input.
Simple example:
class cmd
{
public static void main(String args[])
{
int a=Integer.parseInt(args[0]);
int b=Integer.parseInt(args[1]);
int c=a+b;
System.out.println("Sum = " + c);
}
}
Run program : java cmd 10 20
Output : 30
Example of command-line argument that prints all the values In this example, we are printing all the arguments passed from the command-line. For this
purpose, we have traversed the array using for loop.
class A
{
public static void main(String args[])
{
403- JAVA Programming Unit-2 SDJ International College
15 | P a g e P r o f . R o n a k P a n c h a l
for(int i=0;i
403- JAVA Programming Unit-2 SDJ International College
16 | P a g e P r o f . R o n a k P a n c h a l
System.out.println(args[i]);
}
}
compile > javac A.java
run > java A Neha Nainesh Gathiyawala Output: Neha
Nainesh
Gathiyawala
Java String
Basically, String is collection of character.
Java String provides a lot of concepts that can be performed on a string such as compare,
concat, equals, split, length, replace, compareTo, intern, substring etc.
In java, string is basically an object that represents sequence of char values.
An array of characters works same as java string. For example: char[] ch={'j','a','v','a'};
String s=new String(ch);
is same as:
String s="java”;
The java String is immutable i.e. it cannot be changed but a new instance is created. For
mutable class, you can use StringBuffer and StringBuilder class.
What is String in java Generally, string is a sequence of characters. But in java, string is an object that represents a
sequence of characters. String class is used to create string object.
How to create String object?
There are two ways to create String object:
1. By string literal
2. By new keyword
1) String Literal Java String literal is created by using double quotes. For Example:
String s="welcome";
403- JAVA Programming Unit-2 SDJ International College
17 | P a g e P r o f . R o n a k P a n c h a l
Each time you create a string literal, the JVM checks the string constant pool first. If the string
already exists in the pool, a reference to the pooled instance is returned. If string doesn't exist
in the pool, a new string instance is created and placed in the pool. For example:
String s1="Welcome";
String s2="Welcome";//will not create new instance
In the above example only one object will be created. Firstly JVM will not find any string object
with the value "Welcome" in string constant pool, so it will create a new object. After that it will
find the string with the value "Welcome" in the pool, it will not create new object but will
return the reference to the same instance.
Note: String objects are stored in a special memory area known as string constant pool.
Why java uses concept of string literal? To make Java more memory efficient (because no new objects are created if it exists already in
string constant pool).
2) By new keyword String s=new String("Welcome");//creates two objects and one reference variable
In such case, JVM will create a new string object in normal(non pool) heap memory and the
literal "Welcome" will be placed in the string constant pool. The variable s will refer to the
object in heap(non pool).
Immutable String in Java
In java, string objects are immutable. Immutable simply means unmodifiable or unchangeable.
Once string object is created its data or state can't be changed but a new string object is
created.
Why string objects are immutable in java?
Because java uses the concept of string literal. Suppose there are 5 reference variables, all
refers to one object "Nainesh". If one reference variable changes the value of the object, it will
be affected to all the reference variables. That is why string objects are immutable in java.
Java String compare
We can compare string in java on the basis of content and reference.
It is used in authentication (by equals() method), sorting (by compareTo() method), reference
matching (by == operator) etc.
There are three ways to compare string in java: 1. By equals() method
403- JAVA Programming Unit-2 SDJ International College
18 | P a g e P r o f . R o n a k P a n c h a l
2. By = = operator
403- JAVA Programming Unit-2 SDJ International College
19 | P a g e P r o f . R o n a k P a n c h a l
3. By compareTo() method
1) String compare by equals() method
The String equals() method compares the original content of the string. It compares values of
string for equality. String class provides two methods:
class Teststringcomparison1{
public static void main(String args[]){
String s1="Sachin";
String s2="Sachin";
String s3=new String("Sachin");
String s4="Saurav";
System.out.println(s1.equals(s2));//true
System.out.println(s1.equals(s3));//true
System.out.println(s1.equals(s4));//false
} } Output:true
true
false
class Teststringcomparison2{
public static void main(String args[]){
String s1="Sachin";
String s2="SACHIN";
System.out.println(s1.equals(s2));//false
System.out.println(s1.equalsIgnoreCase(s3));//true
} } Output:false
Truec
2) String compare by == operator
The = = operator compares references not values.
class Teststringcomparison3{
public static void main(String args[]){
String s1="Sachin";
String s2="Sachin";
String s3=new String("Sachin");
System.out.println(s1==s2);//true (because both refer to same instance)
System.out.println(s1==s3);//false(because s3 refers to instance created in nonpool)
} } Output:true
403- JAVA Programming Unit-2 SDJ International College
20 | P a g e P r o f . R o n a k P a n c h a l
false
403- JAVA Programming Unit-2 SDJ International College
21 | P a g e P r o f . R o n a k P a n c h a l
3) String compare by compareTo() method
The String compareTo() method compares values lexicographically and returns an integer value
that describes if first string is less than, equal to or greater than second string.
Suppose s1 and s2 are two string variables. If:
s1 == s2 :0
s1 > s2 :positive value
s1 < s2 :negative value
class Teststringcomparison4{
public static void main(String args[]){
String s1="Sachin";
String s2="Sachin";
String s3="Ratan";
System.out.println(s1.compareTo(s2));//0
System.out.println(s1.compareTo(s3));//1(because s1>s3)
System.out.println(s3.compareTo(s1));//-1(because s3 < s1 )
} } Output:0
1
-1
String Concatenation in Java
In java, string concatenation forms a new string that is the combination of multiple strings.
There are two ways to concat string in java:
1. By + (string concatenation) operator
2. By concat() method
1) String Concatenation by + (string concatenation) operator
class TestStringConcatenation1{
public static void main(String args[]){
String s="Sachin"+" Tendulkar";
System.out.println(s);//Sachin Tendulkar
} } Output:
Sachin Tendulkar
String concatenation operator produces a new string by appending the second operand onto
the end of the first operand. The string concatenation operator can concat not only string but
primitive values also. For Example:
class TestStringConcatenation2{
public static void main(String args[]){
403- JAVA Programming Unit-2 SDJ International College
22 | P a g e P r o f . R o n a k P a n c h a l
String s=50+30+"Sachin"+40+40;
403- JAVA Programming Unit-2 SDJ International College
23 | P a g e P r o f . R o n a k P a n c h a l
System.out.println(s);//80Sachin4040
} } 80Sachin4040
Note: After a string literal, all the + will be treated as string concatenation operator.
2) String Concatenation by concat() method The String concat() method concatenates the specified string to the end of current string.
Syntax:
String s1="Sachin ";
String s2="Tendulkar";
String s3=s1.concat(s2);
System.out.println(s3);//Sachin Tendulkar
OP : Sachin Tendulkar
Disclaimer: The study material is compiled by Prof. Nainesh J. Gathiyawala. The basic objective of this material is to supplement teaching and discussion in the classroom in the subject. Students are required to go for extra reading in the subject through library work.
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 16
3. Classes and Objects Simple Class, Field Access Controls, Object creation Construction and Initialization Methods, this pointer Overloading Methods & Constructors. Static members, static block, static class Inheritance, super, abstract class, overriding methods Interfaces
Introduction to Interfaces.
Interface Declaration.
Inheriting and Hiding Constants.
Inheriting, Overloading and Overriding Methods.
Interfaces Implementations
Class in Java Class is user defined data type. It is a template or blueprint from which objects are created.
A class in java can contain:
data member
method
constructor
block
class and interface
Syntax to declare a class:
class {
data member;
method;
}
Instance variable in Java
A variable that is created inside the class but outside the method is known as instance variable.
Instance variable doesn't get memory at compile time. It gets memory at runtime when object
(instance) is created. That is why, it is known as instance variable.
Method in Java
In java, a method is like function i.e. used to expose behavior of an object.
Advantage of Method
Code Reusability
Code Optimization
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 17
new keyword
The new keyword is used to allocate memory at runtime.
Example of Object and class that maintains the records of students
class Student2{
int rollno;
String name;
void insertRecord(int r, String n){ //method
rollno=r;
name=n;
}
void displayInformation(){System.out.println(rollno+" "+name);}//method
public static void main(String args[]){
Student2 s1=new Student2();
Student2 s2=new Student2();
s1.insertRecord(111," PRINCY ");
s2.insertRecord(222," HARVI ");
s1.displayInformation();
s2.displayInformation();
}
}
OP : 111 PRINCY
222 HARVI
Constructor in Java
Constructor in java is a special type of method that is used to initialize the object.
Constructor properties:
Constructor name must be same as its class name. Constructor must have no return type. Constructor always declared as public. Constructor invoke automatically whenever object is created.
Types of java constructors There are two types of constructors:
1. Default constructor (no-arg constructor) 2. Parameterized constructor
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 18
Java Default Constructor
A constructor that have no parameter is known as default constructor
Syntax of default constructor:
(){}
Example of default constructor
In this example, we are creating the no-arg constructor in the Bike class. It will be invoked
at the time of object creation.
class Bike1{
Bike1(){System.out.println("Bike is created");}
public static void main(String args[]){
Bike1 b=new Bike1(); }
}
Output: Bike is created
Rule: If there is no constructor in a class, compiler automatically creates a default
constructor.
Q) What is the purpose of default constructor? Default constructor provides the default values to the object like 0, null etc. depending on the
type.
Example of default constructor that displays the default values class Student3{
int id;
String name;
void display(){System.out.println(id+" "+name);}
public static void main(String args[]){
Student3 s1=new Student3(); Student3 s2=new Student3();
s1.display();
s2.display();
}
}
Output: 0 null
0 null
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 19
Explanation:In the above class,you are not creating any constructor so compiler provides you a
default constructor.Here 0 and null values are provided by default constructor.
Java parameterized constructor
A constructor that has parameters is known as parameterized constructor.
Why use parameterized constructor?
Parameterized constructor is used to provide different values to the distinct objects.
Example of parameterized constructor
In this example, we have created the constructor of Student class that have two parameters. We
can have any number of parameters in the constructor.
class Student4{
int id;
String name;
Student4(int i,String n){
id = i;
name = n;
}
void display(){System.out.println(id+" "+name);}
public static void main(String args[]){
Student4 s1 = new Student4(111,"PRINCY");
Student4 s2 = new Student4(222,"HARVI");
s1.display();
s2.display();
}
}
Output: 111 PRINCY
222 HARVI
Constructor Overloading in Java
Constructor overloading is a technique in Java in which a class can have any
number of constructors that differ in parameter lists. The compiler differentiates these
constructors by taking into account the number of parameters in the list and their type.
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 20
Example of Constructor Overloading class Student5{
int id;
String name;
int age;
Student5(int i,String n){
id = i;
name = n;
}
Student5(int i,String n,int a){
id = i;
name = n;
age=a;
}
void display(){System.out.println(id+" "+name+" "+age);}
public static void main(String args[]){
Student5 s1 = new Student5(111,"Nainesh");
Student5 s2 = new Student5(222,"Gathiyawala",25);
s1.display();
s2.display();
} }
Output:
111 Nainesh 0
222 Gathiyawala 25
Difference between constructor and method in java
There are many differences between constructors and methods. They are given below.
Java Constructor Java Method
Constructor is used to initialize the state of an
object. Method is used to expose behavior of an object.
Constructor must not have return type. Method must have return type.
Constructor is invoked implicitly. Method is invoked explicitly.
The java compiler provides a default
constructor if you don't have any constructor. Method is not provided by compiler in any case.
Constructor name must be same as the class
name.
Method name may or may not be same as class
name.
Copy Constructor
There is no copy constructor in java. But, we can copy the values of one object to another like
copy constructor in C++.
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 21
this keyword in java
There can be a lot of usage of java this keyword. In java, this is a reference variable that refers
to the current object.
Usage of java this keyword
Here is given the usage of java this keyword.
1. this keyword can be used to refer current class instance variable. 2. this() can be used to invoke current class constructor.
1) this keyword can be used to refer current class instance variable.
If there is ambiguity between the instance variable and parameter, this keyword resolves the
problem of ambiguity.
Understanding the problem without this keyword
class Student10{
int id;
String name;
Student10(int id,String name){
id = id;
name = name;
}
void display(){System.out.println(id+" "+name);}
public static void main(String args[]){
Student10 s1 = new Student10(111,"RAJ");
Student10 s2 = new Student10(321,"World");
s1.display();
s2.display();
}
}
Output:0 null
0 null
In the above example, parameter (formal arguments) and instance variables are same that is why
we are using this keyword to distinguish between local variable and instance variable.
Solution of the above problem by this keyword
//example of this keyword
class Student11{
int id;
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 22
String name;
Student11(int id,String name){
this.id = id;
this.name = name;
}
void display(){System.out.println(id+" "+name);}
public static void main(String args[]){
Student11 s1 = new Student11(111,"PRINCY");
Student11 s2 = new Student11(222,"HARVI");
s1.display();
s2.display();
} }
Output111 PRINCY
222 HARVI
If local variables (formal arguments) and instance variables are different, there is no need to
use this keyword.
2) this() can be used to invoked current class constructor. The this() constructor call can be used to invoke the current class constructor (constructor
chaining). This approach is better if you have many constructors in the class and want to reuse
that constructor.
//Program of this() constructor call (constructor chaining)
class Student13{
int id;
String name;
Student13(){System.out.println("default constructor is invoked");}
Student13(int id,String name){
this ();//it is used to invoked current class constructor.
this.id = id;
this.name = name;
}
void display(){System.out.println(id+" "+name);}
public static void main(String args[]){
Student13 e1 = new Student13(111,"Nainesh");
Student13 e2 = new Student13(222,"Gathiyawala");
e1.display();
e2.display();
}
}
Output:
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 23
default constructor is invoked
default constructor is invoked
111 Ishaan
222 Tamhankar
Rule: Call to this() must be the first statement in constructor.
Method Overloading in Java
If a class has multiple methods by same name but different parameters, it is known as
Method Overloading.
Advantage of method overloading
Method overloading increases the readability of the program.
Different ways to overload the method There are two ways to overload the method in java
1. By changing number of arguments 2. By changing the data type
In java, Method Overloading is not possible by changing the return type of the method.
1) Example of Method Overloading by changing the no. of arguments In this example, we have created two overloaded methods, first sum method performs addition of
two numbers and second sum method performs addition of three numbers.
class Calculation{
void sum(int a,int b){System.out.println(a+b);}
void sum(int a,int b,int c){System.out.println(a+b+c);}
public static void main(String args[]){
Calculation obj=new Calculation();
obj.sum(10,10,10);
obj.sum(20,20);
} }
Output:30
40
2) Example of Method Overloading by changing data type of argument In this example, we have created two overloaded methods that differ in data type. The first sum
method receives two integer arguments and second sum method receives two double arguments
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 24
class Calculation2{
void sum(int a,int b){System.out.println(a+b);}
void sum(double a,double b){System.out.println(a+b);}
public static void main(String args[]){
Calculation2 obj=new Calculation2();
obj.sum(10.5,10.5);
obj.sum(20,20);
}
}
Output:21.0
40
Q) Why Method Overloading is not possible by changing the return type of
method? In java, method overloading is not possible by changing the return type of the method because
there may occur ambiguity.
Q) Can we overload main () method? Yes, by method overloading. You can have any number of main methods in a class by method
overloading.
Method Overriding in Java
If subclass (child class) has the same method as declared in the parent class, it is known as
method overriding in java.
Usage of Java Method Overriding
Method overriding is used to provide specific implementation of a method that is already
provided by its super class.
Method overriding is used for runtime polymorphism
Rules for Java Method Overriding
1. method must have same name as in the parent class 2. method must have same parameter as in the parent class. 3. must be IS-A relationship (inheritance).
class Vehicle{
void run(){System.out.println("Vehicle is running");}
}
class Bike2 extends Vehicle{
void run(){System.out.println("Bike is running safely");}
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 25
public static void main(String args[]){
Bike2 obj = new Bike2();
obj.run();
}
Output: Bike is running safely
Can we override static method? No, static method cannot be overridden. It can be proved by runtime polymorphism
Why we cannot override static method? Because static method is bound with class whereas instance method is bound with object. Static
belongs to class area and instance belongs to heap area.
Can we override java main method? No, because main is a static method.
Difference between method overloading and method overriding in java
No. Method Overloading Method Overriding
1)
Method overloading is used to increase the
readability of the program.
Method overriding is used to provide the
specific implementation of the method that is
already provided by its super class.
2) Method overloading is performed within class. Method overriding occurs in two classes that
have IS-A (inheritance) relationship.
3) In case of method overloading, parameter
must be different.
In case of method overriding, parameter must
be same.
4) Method overloading is the example of compile
time polymorphism.
Method overriding is the example of run time
polymorphism.
5)
In java, method overloading can't be
performed by changing return type of the
method only. Return type can be same or
different in method overloading. But you must
have to change the parameter.
Return type must be same or covariant in
method overriding.
super keyword in java
The super keyword in java is a reference variable that is used to refer immediate parent class
object.
Usage of java super Keyword
1. super is used to refer immediate parent class instance variable. 2. super() is used to invoke immediate parent class constructor. 3. super is used to invoke immediate parent class method.
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 26
1) super is used to refer immediate parent class instance variable.
//example of super keyword
class Vehicle{
int speed=50;
}
class Bike4 extends Vehicle{
int speed=100;
void display(){
System.out.println(super.speed);//will print speed of Vehicle now
}
public static void main(String args[]){
Bike4 b=new Bike4();
b.display();
} } Output:100
2) super is used to invoke parent class constructor.
class Vehicle{
Vehicle(){System.out.println("Vehicle is created");}
}
class Bike5 extends Vehicle{
Bike5(){
super();//will invoke parent class constructor
System.out.println("Bike is created");
}
public static void main(String args[]){
Bike5 b=new Bike5();
} }
Output:Vehicle is created
Bike is created
3) super can be used to invoke parent class method
The super keyword can also be used to invoke parent class method. It should be used in case
subclass contains the same method as parent class as in the example given below:
class Person{
void message(){System.out.println("welcome");}
}
class Student16 extends Person{
void message(){System.out.println("welcome to java");}
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 27
void display(){
message();//will invoke current class message() method
super.message();//will invoke parent class message() method
}
public static void main(String args[]){
Student16 s=new Student16();
s.display();
}
}
Output:welcome to java
Welcome
In the above example Student and Person both classes have message() method if we call
message() method from Student class, it will call the message() method of Student class not of
Person class because priority is given to local.
Final Keyword In Java
The final keyword in java is used to restrict the user. The java final keyword can be used in
many context. Final can be:
1. Variable (Stop value change) 2. Method (Stop method overriding) 3. Class (Stop inheritance)
1) Java final variable
If you make any variable as final, you cannot change the value of final variable(It will be
constant).
class Bike9{
final int speedlimit=90;//final variable
void run(){
speedlimit=400;
}
public static void main(String args[]){
Bike9 obj=new Bike9();
obj.run();
}
}//end of class
Output:Compile Time Error
2) Java final method
If you make any method as final, you cannot override it.
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 28
Example of final method class Bike{ final void run(){System.out.println("running");}
}
class Honda extends Bike{
void run(){System.out.println("running safely with 100kmph");}
public static void main(String args[]){
Honda honda= new Honda();
honda.run();
} }
Output:Compile Time Error
3) Java final class
If you make any class as final, you cannot extend it.
Example of final class final class Bike{} class Honda1 extends Bike{
void run(){System.out.println("running safely with 100kmph");}
public static void main(String args[]){
Honda1 honda= new Honda();
honda.run();
} }
Output:Compile Time Error
Q) Can we declare a constructor final? No, because constructor is never inherited.
Q) What is final parameter? If you declare any parameter as final, you cannot change the value of it.
Java static keyword
The static keyword in java is used for memory management mainly. We can apply java static
keyword with variables, methods, blocks and nested class. The static keyword belongs to the
class than instance of the class.
The static can be:
1. variable (also known as class variable) 2. method (also known as class method) 3. block 4. nested class
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 29
1) Java static variable
If you declare any variable as static, it is known static variable.
The static variable can be used to refer the common property of all objects (that is not
unique for each object) e.g. company name of employees, college name of students etc.
The static variable gets memory only once in class area at the time of class loading.
Advantage of static variable It makes your program memory efficient (i.e it saves memory).
Example of static variable //Program of static variable
class Student8{
int rollno;
String name;
static String college ="SDJ";
Student8(int r,String n){
rollno = r;
name = n;
}
void display (){System.out.println(rollno+" "+name+" "+college);}
public static void main(String args[]){
Student8 s1 = new Student8(111,"PRINCY");
Student8 s2 = new Student8(222,"HARVI");
s1.display();
s2.display();
}
}
Output:111 PRINCY SDJ
222 HARVI SDJ
2) Java static method
If you apply static keyword with any method, it is known as static method.
A static method belongs to the class rather than object of a class. A static method can be invoked without the need for creating an instance of a
class.
static method can access static data member and can change the value of it.
//Program of changing the common property of all objects(static field).
class Student9{
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 30
int rollno;
String name;
static String college = "SDJ";
static void change(){
college = "SDJ International College ";
}
Student9(int r, String n){
rollno = r;
name = n;
}
void display (){System.out.println(rollno+" "+name+" "+college);}
public static void main(String args[]){
Student9.change();
Student9 s1 = new Student9 (111,"Nainesh");
Student9 s2 = new Student9 (222,"Princy");
Student9 s3 = new Student9 (333,"Harvi");
s1.display();
s2.display();
s3.display();
} } Output:111 Nainesh SDJ International College
222 Princy SDJ International College
333 Harvi SDJ International College
Restrictions for static method There are two main restrictions for the static method. They are:
1. The static method cannot use non static data member or call non-static method directly. 2. this and super cannot be used in static context.
Q) Why java main method is static? Ans) because object is not required to call static method if it were non-static method, jvm create
object first then call main() method that will lead the problem of extra memory allocation.
3) Java static block
Is used to initialize the static data member.
It is executed before main method at the time of class loading.
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 31
Example of static block
class A2{
static{System.out.println("static block is invoked");}
public static void main(String args[]){
System.out.println("Hello main");
}
} Output:static block is invoked
Hello main
Abstract class in Java
A class that is declared with abstract keyword is known as abstract class in java. It can have
abstract and non-abstract methods (method with body).
Abstraction Abstraction is a process of hiding the implementation details and showing only functionality to
the user.
Another way, it shows only important things to the user and hides the internal details.
sending sms, you just type the text and send the message. You don't know the internal
processing about the message delivery.
Abstraction lets you focus on what the object does instead of how it does it.
Ways to achieve Abstraction There are two ways to achieve abstraction in java
1. Abstract class (0 to 100%) 2. Interface (100%)
Abstract class in Java A class that is declared as abstract is known as abstract class. It needs to be extended and its
method implemented. It cannot be instantiated.
Example abstract class abstract class A{}
abstract method
A method that is declared as abstract and does not have implementation is known as abstract
method.
Example abstract method
abstract void printStatus();//no body and abstract
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 32
Example of abstract class that has abstract method In this example, Bike the abstract class that contains only one abstract method run. It
implementation is provided by the Honda class.
abstract class Bike{
abstract void run();
}
class Honda4 extends Bike{
void run(){System.out.println("running safely..");}
public static void main(String args[]){
Bike obj = new Honda4();
obj.run();
} }
OP : running safely..
Abstract class having constructor, data member, methods etc. An abstract class can have data member, abstract method, method body, constructor and even
main() method.
example of abstract class that have method body abstract class Bike{
Bike(){System.out.println("bike is created");} abstract void run();
void changeGear(){System.out.println("gear changed");}
}
class Honda extends Bike{
void run(){System.out.println("running safely..");} }
class TestAbstraction2{
public static void main(String args[]){
Bike obj = new Honda();
obj.run();
obj.changeGear();
} } bike is created
running safely..
gear changed
Rule: If there is any abstract method in a class, that class must be abstract.
Interface
An interface is a blueprint of a class. It has abstract methods only. The interface in java is a
mechanism to achieve fully abstraction.
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 33
Why use Java interface?
There are mainly two reasons to use interface. They are given below.
It is used to achieve fully abstraction.
By interface, we can support the functionality of multiple inheritances.
The java compiler adds public and abstract keywords before the interface method
And
Public, static and final keywords before data members.
In other words, Interface fields are public, static and final by default, and methods are public and
abstract.
Understanding relationship between classes and interfaces
Simple example of Java interface
In this example, Printable interface have only one method, its implementation is provided in the
A6 class.
interface printable{
void print();
}
class A6 implements printable{
public void print(){System.out.println("Hello");}
public static void main(String args[]){
A6 obj = new A6();
obj.print();
} } Output:Hello
Multiple inheritance in Java by interface
If a class implements multiple interfaces, or an interface extends multiple interfaces i.e. known
as multiple inheritance.
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 34
interface Printable{
void print();
}
interface Showable{
void show();
}
class A7 implements Printable,Showable{
public void print(){System.out.println("Hello");}
public void show(){System.out.println("Welcome");}
public static void main(String args[]){
A7 obj = new A7();
obj.print();
obj.show();
} }
Output:Hello
Welcome
Q) Multiple inheritances is not supported through class in java but it is
possible by interface, why?
As we have explained in the inheritance chapter, multiple inheritances is not supported in case of
class. But it is supported in case of interface because there is no ambiguity as implementation is
provided by the implementation class. For example:
interface Printable{
void print();
}
interface Showable{
void print();
}
class TestTnterface1 implements Printable,Showable{
public void print(){System.out.println("Hello");}
public static void main(String args[]){
TestTnterface1 obj = new TestTnterface1();
obj.print();
} }
Op : Hello
As you can see in the above example, Printable and Showable interface have same methods but
its implementation is provided by class TestTnterface1, so there is no ambiguity.
Interface inheritance
A class implements interface but one interface extends another interface .
interface Printable{
403- JAVA Programming Unit-3 SDJ International College
Prof.Ishaan Tamhankar
Page 35
void print();
}
interface Showable extends Printable{
void show();
}
class Testinterface2 implements Showable{
public void print(){System.out.println("Hello");}
public void show(){System.out.println("Welcome");}
public static void main(String args[]){
Testinterface2 obj = new Testinterface2();
obj.print();
obj.show();
} } Hello
Welcome
Difference between abstract class and interface
Abstract class Interface
1) Abstract class can have abstract and non-
abstract methods. Interface can have only abstract methods.
2) Abstract class doesn't support multiple
inheritance. Interface supports multiple inheritance.
3) Abstract class can have final, non-final, static
and non-static variables. Interface has only static and final variables.
4) Abstract class can have static methods, main
method and constructor.
Interface can't have static methods, main
method or constructor.
5) Abstract class can provide the
implementation of interface.
Interface can't provide the implementation
of abstract class.
6) The abstract keyword is used to declare
abstract class.
The interface keyword is used to declare
interface.
7)Example:
public abstract class Shape{
public abstract void draw();
}
Example:
public interface Drawable{
void draw();
}
Disclaimer: The study material is compiled by Prof. Nainesh J. Gathiyawala. The basic objective of this material is to supplement teaching and discussion in the classroom in the subject. Students are required to go for extra reading in the subject through library work.
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 36
Java Applet
Applet is small java program that are primarily used in internet computing.
An applet is a special type of application that's included as a part of an HTML page and can be
stored in a web page and run within a web browser.
They can be run using the appletviewer or any Web browser that supports Java.
It can perform arithmetic operations, display graphics, play sounds, accept user input, create
animation.
Applet code uses the services of two classes namely Applet and Graphics from the Java class
library.
Advantage of Applet
There are many advantages of applet. They are as follows:
It works at client side so less response time.
Secured
It can be executed by browsers running under many plateforms, including Linux,
Windows, Mac Os etc.
Drawback of Applet
Plugin is required at client browser to execute applet.
Lifecycle of Java Applet
When an applet is loaded , it undergoes a series of changes in its state. The applet state include
1. Born or initialization state 2. Running state 3. Idle state 4. Dead or destroyed state
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 37
Initialization State :
Applet enters the initialization state when it is first loaded. This is achieved by calling the init() method of Applet Class. The applet is born. At this stage, we may do the
following, if required.
1. Create objects needed by the applet 2. Set up initial values 3. Load images or fonts 4. Set up colors,
The initialization occurs only once in the applet‟s life cycle.
Running State :
Applet enters the running state when the system calls the start() method of Applet Class. This occurs automatically after the applet is initialized. Starting can also occur if the applet is already in “stopped” (idle) state. The start() method may be called more than once.
Idle or Stopped State :
An applet becomes idle when it is stopped from running. Stopping occurs automatically when we leave the page containing the currently running
applet. We can also do so by calling the stop() method explicitly.
If we use a thread to run the applet, then we must use stop() method to terminate the thread.
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 38
Dead State :
An applet is said to be dead when it is removed from memory. This occurs automatically by invoking the destroy() method when we quit the browser. Like initialization, destroying stage occurs only once in the applet‟s life cycle. If the applet has created any resources, like threads, we may override the destroy()
method to clean up these resources.
Display State :
Applet moves to the display state whenever it has to perform some output operations on the screen. This happens immediately after the applet enters into the running state. The paint() method is called to accomplish this task. Almost every applet will have a paint() method. Display state is not considered as a part of the applet‟s life cycle.
Who is responsible to manage the life cycle of an applet?
Java Plug-in
Applet Architecture:
Applets are event driven. An applet waits until an event occurs. The AWT notifies the applet about an event by calling an event handler that has been provided by the applet. Once this happens, the
applet must take appropriate action and then quickly return control to the AWT.
The user interacts with the applet as he/she want , when he/she wants. These interactions are sent to the applet as events to which the applet must respond. For ex. when the user clicks a mouse, a
mouse-clicked event is generated. If the user press a key, a keypress event is generated.
Applets can contain various controls , such as push buttons and check boxes. When the user interacts with one of these controls, an event is generated.
The Java‟s AWT makes Applet architecture simple.
Simple example of Applet by html file:
To execute the applet by html file, create an applet and compile it. After that create an html file
and place the applet code in html file. Now click the html file.
//First.java
import java.applet.Applet;
import java.awt.Graphics;
public class First extends Applet{
public void paint(Graphics g){
g.drawString("welcome",150,150);
} }
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 39
Note: class must be public because its object is created by Java Plugin software that resides on
the browser.
myapplet.html
Simple example of Applet by appletviewer tool:
To execute the applet by appletviewer tool, create an applet that contains applet tag in comment
and compile it. After that run it by: appletviewer First.java. Now Html file is not required but it
is for testing purpose only.
//First.java
import java.applet.Applet;
import java.awt.Graphics;
public class First extends Applet{
public void paint(Graphics g){
g.drawString("welcome to applet",150,150);
}
}
/*
*/
To execute the applet by appletviewer tool, write in command prompt:
c:\>javac First.java
c:\>appletviewer First.java
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 40
Displaying Graphics in Applet
java.awt.Graphics class provides many methods for graphics programming.
Commonly used methods of Graphics class:
1. public abstract void drawString(String str, int x, int y): is used to draw the specified
string.
2. public void drawRect(int x, int y, int width, int height): draws a rectangle with the specified width and height.
3. public abstract void fillRect(int x, int y, int width, int height): is used to fill rectangle with the default color and specified width and height.
4. public abstract void drawOval(int x, int y, int width, int height): is used to draw oval with the specified width and height.
5. public abstract void fillOval(int x, int y, int width, int height): is used to fill oval with the default color and specified width and height.
6. public abstract void drawLine(int x1, int y1, int x2, int y2): is used to draw line between the points(x1, y1) and (x2, y2).
7. public abstract boolean drawImage(Image img, int x, int y, ImageObserver observer): is used draw the specified image.
8. public abstract void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle): is used draw a circular or elliptical arc.
9. public abstract void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle): is used to fill a circular or elliptical arc.
10. public abstract void setColor(Color c): is used to set the graphics current color to the specified color.
11. public abstract void setFont(Font font): is used to set the graphics current font to the specified font.
12. repaint() method:
whenever your applet needs to update the information displayed in its window, it simply
calls repaint().
Syntax : 1) void repaint()
This version causes the entire window to be repianted.
2) void repiant(int left,int top, int width, int height)
It specifies a region that will be repainted. You save time by specifying a region
to repaint.
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 41
Example of Graphics in applet:
import java.applet.Applet;
import java.awt.*;
public class GraphicsDemo extends Applet{
public void paint(Graphics g){
g.setColor(Color.red);
g.drawString("Welcome",50, 50);
g.drawLine(20,30,20,300);
g.drawRect(70,100,30,30);
g.fillRect(170,100,30,30);
g.drawOval(70,200,30,30);
g.setColor(Color.pink);
g.fillOval(170,200,30,30);
g.drawArc(90,150,30,30,30,270);
g.fillArc(270,150,30,30,0,180);
}
}
myapplet.html
Displaying Image in Applet
Applet is mostly used in games and animation. For this purpose image is required to be
displayed. The java.awt.Graphics class provide a method drawImage() to display the image.
Syntax of drawImage() method:
public abstract boolean drawImage(Image img, int x, int y, ImageObserver observer): is used draw the
specified image.
How to get the object of Image:
The java.applet.Applet class provides getImage() method that returns the object of Image.
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 42
Syntax:
public Image getImage(URL u, String image){}
Other required methods of Applet class to display image:
1. public URL getDocumentBase(): is used to return the URL of the document in which applet is
embedded.
2. public URL getCodeBase(): is used to return the base URL.
Example of displaying image in applet:
import java.awt.*;
import java.applet.*;
public class DisplayImage extends Applet {
Image picture;
public void init() {
picture = getImage(getDocumentBase(),"sonoo.jpg");
}
public void paint(Graphics g) {
g.drawImage(picture, 30,30, this);
}
}
In the above example, drawImage() method of Graphics class is used to display the image. The
4th argument of drawImage() method of is ImageObserver object. The Component class
implements ImageObserver interface. So current class object would also be treated as
ImageObserver because Applet class indirectly extends the Component class.
myapplet.html
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 43
Parameter in Applet
We can get any information from the HTML file as a parameter. For this purpose, Applet class
provides a method named getParameter().
HTML allows you to pass parameters to your applet. To retrieve a parameter, use the
getParameter() method. It returns the value of the specified parameter in the form of a String
object. Thus, for numeric and Boolean values, you will need to convert their string
representations into their internal formats.
Syntax:
String getParameter(String parameterName)
Eg:
import java.applet.Applet;
import java.awt.Graphics;
public class UseParam extends Applet{
public void paint(Graphics g){
String str=getParameter("msg");
g.drawString(str,50, 50); }
}
/*
*/
To set background Color
setBackground(Color.red);
To set Foreground Color
setForeground(Color.red);
To change Status message
showStatus("This is a status message of an applet window");
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 44
Applet Example :
1. Smileyface
public void paint(Graphics g){
Font f = new Font("Helvetica", Font.BOLD,20);
g.setFont(f);
g.drawString("Keep Smiling!!!", 50, 30);
g.drawOval(60, 60, 200, 200);
g.fillOval(90, 120, 50, 20);
g.fillOval(190, 120, 50, 20);
g.drawLine(165, 125, 165, 175);
g.drawArc(110, 130, 95, 95, 0, -180);
}
2. Set font and style
Font myFont = new Font("Courier", Font.BOLD | Font.ITALIC ,50);
g.setFont(myFont);
g.drawString("Sample", 10, 50);
3. Polygon
public void paint(Graphics g){
g.drawLine(10,20,170,40);
g.drawLine(170,40,80,140);
g.drawLine(80,140,10,20);
}
}
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 45
4. Face
public void paint(Graphics g){
g.drawOval(40,40,120,150); //head
g.drawOval(57,75,30,20);//left eye
g.drawOval(110,75,30,20);//right eye
g.fillOval(68,81,10,10);//pupil(left)
g.fillOval(121,81,10,10);//pupil(right)
g.drawOval(85,100,30,30);//nose
g.fillArc(60,125,80,40,180,180);//mouth
g.drawOval(25,92,15,30);//left ear
g.drawOval(160,92,10,30);//right ear
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 46
5. Draw Polygon public void paint(Graphics g)
{
// int x[] = {350,450,570,450};
// int y[] = {220,100,220,320};
int x[] = {100,220,350,300,150};
int y[] = {150,70,150,290,290};
g.drawPolygon(x,y,5);
}
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 47
Difference between applet and application.
Applet Application
Small Program Large Program
Used to run a program on client Browser Can be executed on stand alone computer system
Applet is portable and can be executed by any
JAVA supported browser.
Need JDK, JRE, JVM installed on client
machine.
Applet applications are executed in a Restricted
Environment
Application can access all the resources of the
computer
Applets are created by extending the
java.applet.Applet
Applications are created by writing public static
void main(String[] s) method.
Applet application has 5 methods which will be
automatically invoked on occurrence of specific
event
Application has a single start point which is main
method
Main method is not present Main method is present
Does not require any security Requires highest security for the system as they
are untrusted
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 48
Multithreading
Multithreading in java is a process of executing multiple threads simultaneously.
Thread is basically a lightweight sub-process, a smallest unit of processing.
Multiprocessing and multithreading, both are used to achieve multitasking. But we use
multithreading than multiprocessing because threads share a common memory area. And
that’s why known as Light Weight Process. They don't allocate separate memory area so saves
memory, and context-switching between the threads takes less time than process.
Java Multithreading is mostly used in games, animation etc.
Advantage of Java Multithreading
1) It doesn't block the user because threads are independent and you can perform multiple operations at same time.
2) You can perform many operations together so it saves time. 3) Threads are independent so it doesn't affect other threads if exception occurs in a single thread.
As shown in the above figure, thread is executed inside the process. There is context-switching
between the threads. There can be multiple processes inside the OS and one process can have
multiple threads.
Note: At a time one thread is executed only.
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 49
Life cycle of a Thread (Thread States) During the life time of a thread, there are many states it can enter. They include:
1. Newborn state 2. Runnable state 3. Running state 4. Blocked state 5. Dead state
A thread is always in one of these five states
Newborn State:
When we create a thread object, the thread is born and is said to be in newborn state.
Runnable state:
The runnable state means that the thread is ready for execution and is waiting for the availability of the processor. That is, the thread has joined the queue of threads that are waiting for execution.
If all threads have equal priority, then they are given time slots for execution in round robin fashion, ie. First-come, first-serve manner. The thread that relinquishes control, joins the queue at the end and
again waits for its turn. This process of assigning time to threads is known as time-slicing.
However, it we want a thread to relinquish control to another thread of equal priority before its turncomes, we can do so by using the yield() method.
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 50
Running State:
Running means that the processor has given its time to the thread for its execution.
Blocked State:
A thread is said to be blocked when it is prevented from entering into the Runnable state and subsequently the running state.
This happens when the thread is suspended, sleeping, or waiting. A blocked thread is considered “not runnable” but not dead and therefore fully qualified to run
again.
Dead State:
Every thread has a life cycle. A running thread ends its life when it has completed execution its run() method. It is natural death. However, we can kill it by sending the stop message to it at any state thus causing a premature death
to it. A thread can be killed as soon it is born, or while it is running , or even when it is in “not
Runnable” (blocked) condition.
How to create thread? There are two ways to create a thread:
1. By extending Thread class 2. By implementing Runnable interface.
1) By extending Thread class:
class th1 extends Thread
{
public void run()
{
for(int i=1;i
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 51
}
}
}
class test
{
public static void main(String args[])
{
th1 a1=new th1();
th2 a2=new th2();
a1.run();
a2.run();
System.out.println("exit main");
}
}
2) By implementing the Runnable interface:
class Multi3 implements Runnable{
public void run(){
System.out.println("thread is running...");
}
public static void main(String args[]){
Multi3 m1=new Multi3();
Thread t1 =new Thread(m1);
t1.start();
}
} Output:thread is running...
If you are not extending the Thread class,your class object would not be treated as a thread
object.So you need to explicitely create Thread class object.We are passing the object of your
class that implements Runnable so that your class run() method may execute.
Starting a thread:
start() method of Thread class is used to start a newly created thread. It performs following
tasks:
A new thread starts.
The thread moves from New state to the Runnable state.
When the thread gets a chance to execute, its target run() method will run.
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 52
Can we start a thread twice? No. After starting a thread, it can never be started again.
If you does so, an IllegalThreadStateException is thrown. In such case, thread will run once but
for second time, it will throw exception.
Let's understand it by the example given below:
public class TestThreadTwice1 extends Thread{
public void run(){
System.out.println("running...");
}
public static void main(String args[]){
TestThreadTwice1 t1=new TestThreadTwice1();
t1.start();
t1.start();
}
}
running
Exception in thread "main" java.lang.IllegalThreadStateException
Thread Priorities:
Each thread has a priority. Priorities are represented by a number between 1 and 10.
They are used by the thread scheduler to decide when each thread should be allowed to run. In
theory , higher threads get more CPU time than lower-priority threads.
It's possible to assign a thread priority
3 constants defined in Thread class:
The Thread class contains three integer priority constants.
1) MIN_PRIORITY
2) NORM_PRIORITY
3) MAX_PRIORITY
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 53
Default priority of a thread is 5 (NORM_PRIORITY).
The value of MIN_PRIORITY is 1
The value of MAX_PRIORITY is 10.
You can check a threads priority using getPriority()
You can change a threads priority using setPriority()
Example of priority of a Thread:
class TestMultiPriority1 extends Thread{
public void run(){
System.out.println("running thread name is:"+Thread.currentThread().getName());
System.out.println("running thread priority is:"+Thread.currentThread().getPriority());
}
public static void main(String args[]){
TestMultiPriority1 m1=new TestMultiPriority1();
TestMultiPriority1 m2=new TestMultiPriority1();
m1.setPriority(Thread.MIN_PRIORITY);
m2.setPriority(Thread.MAX_PRIORITY);
m1.start();
m2.start();
} } Output:running thread name is:Thread-0
running thread priority is:10
running thread name is:Thread-1
running thread priority is:1
Commonly used methods of Thread class:
public void run(): is used to perform action for a thread.
Sleep method in java The sleep() method of Thread class is used to sleep a thread for the specified amount of time.
Syntax of sleep() method in java
The Thread class provides two methods for sleeping a thread:
public static void sleep(long miliseconds)throws InterruptedException
public static void sleep(long miliseconds, int nanos)throws InterruptedException
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 54
Example of sleep method in java
class c1 extends Thread
{
public void run()
{
System.out.println("c program");
try{
Thread.sleep(3000);
}
catch(Exception e)
{
System.out.println(e);
}
System.out.println("c++ program");
try{
Thread.sleep(3000);
}
catch(Exception e)
{
System.out.println(e);
}
System.out.println("java program");
}
}
class test
{
public static void main(String args[]) {
c1 obj1 = new c1();
obj1.start();
}
}
Op: C program
C++ program
Java program
Each new line output comes after 3 second of time interval
As you know well that at a time only one thread is executed. If you sleep a thread for the
specified time, the thread scheduler picks up another thread and so on.
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 55
Difference between wait and sleep?
Let's see the important differences between wait and sleep methods.
wait() sleep()
wait() method releases the lock sleep() method doesn't release the lock.
It is the method of Object class It is the method of Thread class
It is the non-static method It is the static method
should be notified by notify() or notifyAll()
methods
after the specified amount of time, sleep is
completed.
SYNCHRONIZATION Each object in Java has a lock and a monitor to manage the lock.
When two or more threads need access to a shared resource, they need some way to ensure that the
resource will be used by only one thread at a time. The process by which this is achieved is called
synchronization.
Key to synchronization is the concept of the monitor (also called a semaphore). Only one
thread can own a monitor at a given time.
As long as the thread holds the monitor, no other thread can enter the synchronized section of code. other threads
are said to be waiting for the monitor.
In java „synchronized‟ keyword is used with the method to enter the thread in monitor.
You can synchronize your code two ways.
1) Using Synchronized Methods:
synchronized void method( )
{
………. // code here is synchronized
}
To enter an object‟s monitor, just call a method that has been modified with the synchronized
keyword.
Whenever a thread has completed its work of using synchronized method (or block of code), it
will hand over the monitor to the next thread that is ready to use the same resource.
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 56
While a thread is inside a synchronized method, all other threads that try to call it on the same
instance have to wait. To exit the monitor and relinquish control of the object to the next waiting
thread, the owner of the monitor simply returns from the synchronized method.
An interesting situation may occur when two or more threads are waiting to gain control of a
resource of each other. A Java multithreaded program may suffer from the deadlock condition
because the synchronized keyword, when a thread is waiting for an object lock, that is acquired
by another thread and second thread is waiting for an object lock that is acquired by first thread.
Since, both threads are waiting for each other to release the lock, the condition is called
deadlock.
If all threads calling the same method on the same object at the same time , then this is called a
race condition because the threads are racing each other to complete the method. In most
situation, a race condition is more subtle and less predictable, because you can‟t be sure when the
context switch will occur. This can cause a program to run right one time and wrong the next.
Inter-Thread Communication
Inter-thread communication can be defined as the exchange of messages between two or more
threads. The transfer of messages takes place before or after the change of state of thread.
Java implements inter-thread communication with the help of following three methods :
final void wait( ) throws InterruptedException
final void notify( )
final void notifyAll( )
wait() : Tells the calling thread to give up the monitor and Sends the calling thread into the sleep
mode. This thread can now be activated only by notify or notifyall() methods.
One can also specify the time for which the thread has to wait. The desired waiting time period is
specified as an argument to the wait () method.
notify() : Resumes the first thread that went into the sleep mode.
notifyall() : Resumes all the threads that are in sleep mode. The execution of these threads happens
as per priority.
These methods are declared within Object class. Since the methods are declared as final they
cannot be overridden.
Deadlock in java
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 57
Deadlock in java is a part of multithreading. Deadlock can occur in a situation when a thread is
waiting for an object lock, that is acquired by another thread and second thread is waiting for an
object lock that is acquired by first thread. Since, both threads are waiting for each other to
release the lock, the condition is called deadlock.
Deadlock describes a situation where two or more threads are blocked forever, waiting for each
other. Deadlock occurs when multiple threads need the same locks but obtain them in different
order. A Java multithreaded program may suffer from the deadlock condition because the
synchronized keyword causes the executing thread to block while waiting for the lock, or
monitor, associated with the specified object. Here is an example:
403- JAVA Programming SDJ International College
Prof.Ishaan Tamhankar Page 58
Exception Handling in Java
The exception handling in java is one of the powerful mechanisms to handle the runtime errors
so that normal flow of the application can be maintained.
What is exception
Dictionary Meaning: Exception is an abnormal condition.
In java, exception is an event that disrupts the normal flow of the program. It is an object which
is thrown at runtime.
What is exception handling
Exception Handling is a mechanism to handle runtime errors such as ClassNotFound, IO, SQL,
Remote etc.
Advantage of Exception Handling
The core advantage of exception handling is to maintain the normal flow of the application.
Exception normally disrupts the normal flow of the application that is why we use exception
handling. Let's take a scenario:
Common scenari