SlideShare a Scribd company logo
1 of 69
www.SunilOS.com 1
www.sunilos.com
www.raystec.com
Object Oriented Programming
OOP……. Not OOPS!!
2
Object-Oriented Programming Concepts
What is an Object?
What is a Class?
What is a Message?
Encapsulation?
Inheritance?
Polymorphism/Dynamic Binding?
Data Hiding?
Data Abstraction?
www.SunilOS.com
3
Java Primitive Data Types
Primitive Data Types:
o boolean true or false
o char unicode (16 bits)
o byte signed 8 bit integer
o short signed 16 bit integer
o int signed 32 bit integer
o long signed 64 bit integer
o float,double floating point values
www.SunilOS.com
4
Other Data Types
Reference types (composite)
o objects
o arrays
strings are supported by a built-in class named
String (java.lang.String).
string literals are supported by the language (as a
special case).
www.SunilOS.com
www.SunilOS.com 5
Attributes
String color = “Red” ;
int borderWidth = 5 ;
//……
System.out.println(borderWidth) ;
www.SunilOS.com 6
Custom Data Type
public class Shape {
private String color = null;
private int borderWidth = 0;
public int getBorderWidth() {
return borderWidth;
}
public void setBorderWidth(int bw) {
borderWidth = bw;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
:Shape
-color :String
-borderWidth:int
+getColor():String
+setColor()
+getBorderWidth():int
+setBorderWidth()
Members
Member
variables
Member
methods
www.SunilOS.com 7
Method Definition
public class Shape {
..
public void setBorderWidth(int bw)
{
borderWidth = bw;
}
}
Method
www.SunilOS.com 8
Define attribute/variable
 public class TestShape {
o public static void main(String[] args){
 Shape s; //Declaration
 s = new Shape(); //Instantiation
 s.setColor(“Red”);
 s.setBorderWidth(3);
 ….
 int borderW =s.getBorderWidth();
 System.out.println(borderW) ;
o }
 }
S is an object here
S is an instance
here
Real World Entities – More Classes
www.SunilOS.com 9
:Automobile
-color :String
-speed:int
-make:String
+$NO_OF_GEARS
+getColor():String
+setColor()
+getMake():String
+setMake()
+break()
+changeGear()
+accelerator()
+getSpeed():int
:Person
-name:String
-dob : Date
-address:String
+$AVG_AGE
+getName():String
+setName()
+getAdress():String
+setAddress()
+getDob (): Date
+setDob ()
+getAge() : int
:Account
-number:String
-accountType : String
-balance:double
+getNumber():String
+setNumber()
+getAccountType():String
+setAccountType()
+deposit ()
+withdrawal ()
+getBalance():double
+fundTransfer()
+payBill()
www.SunilOS.com 10
Define A Class - Shape
public class Shape {
private String color = null;
private int borderWidth = 0;
public static final float PI = 3.14f;
public int getBorderWidth() {
return borderWidth;
}
public void setBorderWidth(int bw) {
borderWidth = bw;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
:Shape
-color :String
-borderWidth:int
+$PI=3.14
+getColor():String
+setColor()
+getBorderWidth():int
+setBorderWidth()
Shape s1 = new Shape();
Shape s2 = new Shape();
S.o.p( s1.PI );
S.o.p( s2.PI );
S.o.p( Shape.PI );
www.SunilOS.com 11
Constructor
public class Shape {
private String color = null;
private int borderWidth = 0;
public Shape(){
System.out.println(
“This is default constructor”);
}
……………
Shape s = new Shape();
 Constructor is just like a method.
 It does not have return type.
 Its name is same as Class name.
 It is called at the time of object
instantiation (new Shape()).
 Constructors are used to initialize
instance/class variables.
 A class may have multiple
constructors with different number
of parameters.
www.SunilOS.com 12
Multiple Constructors
One class may have more than one constructors.
Multiple constructors are used to initialize different sets
of class attributes.
When a class has more than one constructors, it is called
Constructor Overloading.
Constructors those receive parameters are called
Parameterized Constructors.
www.SunilOS.com 13
Constructors Overloading
public class Shape {
private String color = null;
private int borderWidth = 0;
public Shape(){
System.out.println(“This is default
constuctor”)
}
public Shape (String c, int w){
color=c;
borderWidth=w;
}
Shape s = new
Shape()
s.setColor(“Red”);
s.setBorderWidth(5);
Or
Shape s = new
Shape(“Red”,5)
Default Constructor
 Default constructor does not receive any parameter.
o public Shape(){ .. }
 If User does not define any constructor then Default Constructor
will be created by Java Compiler.
 But if user defines single or multiple constructors then default
constructor will not be generated by Java Compiler.
www.SunilOS.com 14
www.SunilOS.com 15
Declare an Instance/Object
Declare Primitive Type
int i;
i=5;
Declare Object
Shape s1,s2;
s1 = new Shape();
s2 = new Shape();
5
4 Bytes
s1
2 Bytes
s2
2 Bytes
getColor()
setColor()
getBorderWidth()
setBorderWidth()
Color
borderWidth
Color
borderWidth
www.SunilOS.com 16
Instance vs static attributes
instance
static
instance
static
Attributes Methods
+getColor()
+setColor()
+getBorderWidth()
+setBorderWiidth()
PI = 3.14
Shape s1, s2
s1 = new Shape()
s2 = new Shape()
color = Red
borderWidth= 5
color = White
borderWidth= 10
s1
s2
s1.getColor()
s2.getBorderWidth()
s1.PI
Shape.PI
Class
1011
1010
1010
1011
2B
2B
:Shape
-color :String
-borderWidth:int
+$PI =3.14
+getColor():String
+setColor()
+getBorderWidth():int
+setBorderWidth()
OOP Key Concepts
Encapsulation:
o Creates Expert Classes.
Inheritance:
o Creates Specialized Classes.
Polymorphism:
o Provides Dynamic behaviour at Runtime.
www.SunilOS.com 17
Encapsulation
www.SunilOS.com 18
Expert Class
Encapsulation will create Expert class
Expert class has related attributes and method
www.SunilOS.com 19
Doctor Advocate Engineer Astronaut
Modern Art: non-encapsulation
www.SunilOS.com 20
www.SunilOS.com 21
Encapsulation
Gathering all related methods and attributes in a Class
is called encapsulation.
Often, for practical reasons, an object may wish to
expose some of its variables or hide some of its
methods.
Access Levels:
Modifier Class Subclass Package World
private X
protected X X X
public X X X X
Inheritance
www.SunilOS.com 22
Dhirubhai Ambani
Specialization
www.SunilOS.com 23
Doctor
General Physician
Heart Specialist ENT Specialist Neurologist
Parent Class
Child Classes
Specialization
www.SunilOS.com 24
Engineer
Mechanical IT
Chemical
Parent Class
Child Classes
www.SunilOS.com 25
Inheritance
:Shape
#color :String
#borderWidth:int
+getColor():String
+setColor()
+getBorderWidth():int
+setBorderWidth()
:Rectangle
-length :int
-width:int
+area()
+getLength()
+setLength()
:Circle
-radius : int
+area()
+getRadius()
+setRadius()
:Triangle
-base:int
-hight:int
+area()
+getBase()
+setBase()
Circle c =new Circle();
c.getColor();
c.getBorderWidth();
c.area();
Access Modifiers: -private #protected +public
IS relation
Generalize
Class
Specialize
Class
:Object
www.SunilOS.com 26
How Objects are Created
Circle c = new Circle( );
Execution Time
c
Shape
Circle
Object
1.
c
Shape
Circle
Object
2.
Object
c
3.
Shape
Circle
www.SunilOS.com 27
Parents Can Keep Child’s Reference
 Circle c = new Circle();
o c.getColor()
o c.getBorderBidth()
o c.area()
 Shape s = new Circle();
o s.getColor()
o s.getBorderBidth()
o s.area()
 Circle c1 = (Circle) s;
o c1.getColor()
o c1.getBorderBidth()
o c1.area()
www.SunilOS.com 28
Parents Can Keep Child’s Reference
Shape s = new Circle( );
Execution Time
s
Shape
Circle
Object
1.
s
Shape
Circle
Object
2.
Object
s
3.
Shape
Circle
Accessible
Window
www.SunilOS.com 29
Method Overriding – area()
:Shape
color :String
borderWidth:int
getColor():String
setColor()
getBorderWidth():int
setBorderWidth()
area()
:Rectangle
length :int
width:int
area()
getLength()
setLength()
:Circle
radius
area()
getRadius()
setRadius()
:Triangle
base:int
hight:int
area()
getBase()
setBase()
Shape s= new Circle()
s.getColor();
s.getBorderWidth();
s.area();
Final Class: experts who does not need specialization
www.SunilOS.com 30
Final Class: does not have child
www.SunilOS.com 31
The Complete Man
Does not need specialization
Final class: the complete class
Final class does not have child. It is defined by
final keyword
public final class String {.. }
www.SunilOS.com
32
:String
+length()
+toUpperCase()
+toLowerCase()
+indexOf()
+replace()
+substring()
:Math
+max()
+min()
+sqrt ()
+abs()
+random()
+sin()
+tan()
www.SunilOS.com 33
The Final modifier
Class :
o Final classes can not have Children.
o public final class Math
Method:
o Final Methods can not be overridden.
o public final double sqrt(int i);
Attribute:
o Final attributes can be assigned a value once in a life.
o public final float PI = 3.14;
Polymorphism
www.SunilOS.com 34
raining()
www.SunilOS.com 35
Polymorphism
 Three Common Uses of Polymorphism:
o Using Polymorphism in Arrays.
o Using Polymorphism for Method Arguments.
o Using Polymorphism for Method Return Type.
 Ways to Provide polymorphism:
o Through Interfaces.
o Method Overriding.
o Method Overloading.
www.SunilOS.com 36
1) Using Polymorphism in Arrays
Shape s[] = new Shape[3];
s[0] = new Rectangle()
s[1] = new Circle()
s[2] = new Triangle()
s[0]:Rectangle
color
borderWidth
length = 17
Width = 35
s[1]:Circle
color
borderWidth
radius = 11
s[2]:Triangle
color
borderWidth
base:15
hight:7
www.SunilOS.com 37
1) Using Polymorphism in Arrays
 Shape[] s;
 s = new Shape[3];
 s[0] = new Rectangle()
 s[1] = new Circle()
 s[2] = new Triangle()
2B
3
[0]
[1]
[2]
length
color
borderWidth
length
width
color
borderWidth
radius
color
borderWidth
Base
hight
1010
1111
1011
1010
1011
1111
1000
1000
www.SunilOS.com 38
2) Using Polymorphism for Method Arguments
public static void main(String[] args) {
Shape[] s = new Shape[3];
s[0] = new Rectangle();
s[1] = new Circle();
s[2] = new Triangle();
double totalArea = calcArea(s);
System.out.println(totalArea);
}
public static double calcArea(Shape[] s) {
double totalArea = 0;
for(int i =0;i<s.length; i++){
totalArea += s[i].area();
}
return totalArea;
}
*The method overriding is an example of runtime polymorphism.
www.SunilOS.com 39
3) Polymorphism using Return Type
public static Shape getShape(int i) {
if (i == 1) return new Rectangle();
if (i == 2) return new Circle();
if (i == 3) return new Triangle();
}
www.SunilOS.com 40
Method Overloading
PrintWriter
o println(String)
o println(int)
o println(double)
o println(boolean)
o println()
Abstract Class
www.SunilOS.com 41
www.SunilOS.com 42
Abstract Class
 What code can be written in Shape.area() method?
o Nothing, area() method is defined by child classes. It should have only
declaration.
 Is Shape a concrete class?
o NO, Rectangle, Circle and Triangle are concrete classes.
 If it has only area declaration then
o Method will be abstract and class will be abstract as well.
 Benefit?
o Parent will enforce child to implement area() method.
o Child has to mandatorily define (implement) area method.
o This will achieve polymorphism.
www.SunilOS.com 43
Shape
public abstract class Shape {
String color = null;
int borderWidth = 0;
public int getBorderWidth() {
return borderWidth;
}
…
public abstract double area();
}
 Instance of an abstract class can not be created
o Shape s= new Shape();
www.SunilOS.com 44
Interface
When all methods are abstract then interface is created.
It has abstract methods and constants.
It represents a role (abstract view) for a class.
One interface can extend another interface using
extends keyword.
One Class can implement multiple interfaces using
implements keyword.
www.SunilOS.com 45
Interfaces
Richman
earnMoney()
donation()
party()
Businessman
name
address
earnMoney()
donation()
party()
Richman rm = new Businessman();
SocialWorker sw = new Businessman();
Businessman bm = new Businessman();
SocialWorker
helpToOthers()
Businessman
name
address
earnMoney()
donation()
party()
helpToOthers()
Businessman
name
address
helpToOthers()
www.SunilOS.com 46
interface Richman
public interface Richman {
o public void earnMoney();
o public void donation();
o public void party();
}
www.SunilOS.com 47
interface SocialWorker
public interface SocialWorker{
o public void helpToOthers();
}
www.SunilOS.com 48
interface SocialWorker
 public class Businessman extends Person
implements Richman, SocialWorker {
 private String name;
 private String address;
 public void donation() {
o System.out.println("Giving Donation");
 }
www.SunilOS.com 49
Interface
It declares APIs.
Specifications are defined as interfaces.
o JDBC
o Collection
o EJB
o JNI
o etc.
Data Abstraction
www.SunilOS.com 50
Interface
Interface
Class
Data Abstraction ( Cont. )
Data abstraction is the way to create complex data types
and exposing only meaningful operations to interact with
data type, whereas hiding all the implementation details
from outside world.
Data Abstraction is a process of hiding the
implementation details and showing only the
functionality.
Data Abstraction in java is achieved by interfaces and
abstract classes.
www.SunilOS.com 51
Data Hiding
www.SunilOS.com 52
Private
Protected
Data Hiding ( Cont. )
Data Hiding is an aspect of Object Oriented
Programming (OOP) that allows developers to
protect private data and hide implementation
details.
Developers can hide class members from other
classes. Access of class members can be
restricted or hide with the help of access
modifiers.
www.SunilOS.com 53
www.SunilOS.com 54
How a constructor can call another constructor ?
 public class Person {
 protected String firstName = null;
 protected String lastName = null;
 protected String address = null;
 public Person() {
 System.out.println("Person Default Con");
 }
 public Person(String fn, String ln) {
o firstName = fn;
o lastName = ln;
o System.out.println(“2 params constructor is called");
 }
www.SunilOS.com 55
How a constructor can call another constructor ?
 public Person(String fn, String ln, String address) {
o firstName = fn;
o lastName = ln;
o this.address = address;
o System.out.println(“3 params constructor is called");
 }
www.SunilOS.com 56
How a constructor can call another constructor ?
 public Person() {
 System.out.println("Person Default Con");
 }
 public Person(String fn, String ln) {
o firstName = fn;
o lastName = ln;
o System.out.println("2 params constructor is called");
 }
 public Person(String fn, String ln, String address) {
1. this(fn,ln) ;
2. this.address = address;
3. System.out.println(“3 params constructor is called");
 }
www.SunilOS.com 57
How to Call Parent Constructor
 public class Employee extends Person {
 private String designation = null;
 public Employee() {
 System.out.println("Default Constructor");
 }
 public Employee(String fn, String ln, String des) {
 super(fn, ln);
 designation = des;
 System.out.println(“3 params constructor is called");
 }
www.SunilOS.com 58
Super default constructor
 If Child constructor does not call parent’s constructor then Parent’s default
constructor is automatically called.
 public Employee() {
 System.out.println("Default Constructor");
 }
 Is Equal to
 public Employee() {
 super();
 System.out.println("Default Constructor");
 }
www.SunilOS.com 59
Super default constructor (cont.)
 public Employee(String fn, String ln, String des) {
o designation = des;
o System.out.println(“3 params constructor is called ");
 }
 Is Equal to
 public Employee(String fn, String ln, String des) {
o super();
o designation = des;
o System.out.println(“3 params constructor is called");
 }
www.SunilOS.com 60
How to call Parent’s overridden method?
 public class Person {
 public void changeAddress() {
o System.out.println("Person change Address");
 }
 …
 public class Employee extends Person {
 public void changeAddress() {
o System.out.println("*****");
o super.changeAddress();
o System.out.println("Employee change Address");
 }
 …
www.SunilOS.com 61
Interesting facts - Overriding
 public class Account{
o public int getAmount() {
o return 5;
o }
 }
 public class SavingAccount extends Account {
o public int getAmount() {
 return 10;
o }
 }
www.SunilOS.com 62
What is Output Of
 public class Test {
 public static void main(String[] args) {
o SavingAccount s = new SavingAccount ();
o Account a = new Account ();
o Account sa = new SavingAccount ();
o System.out.println(s.getAmount());
o System.out.println(a.getAmount());
o System.out.println(sa.getAmount());
o }
 }
Interesting facts - Overriding
 public class Account{
o public int getAmount() {
o return 5;
o }
 }
 public class SavingAccount extends Account{
o public int getAmount() {
 int i = super.getAmount() + 10;
 return i;
o }
 }
www.SunilOS.com 63
www.SunilOS.com 64
Constructor and Inheritance
class A {
...
}
class B extends A {
public B(int x){}
}
B b = new B(3);
OK
-default constr. A()
-B(int x)
Implicit call of base class constructor
class A {
public A() {...}
}
class B extends A {
public B(int x) {...}
}
B b = new B(3);
OK
-A()
-B(int x)
class A {
public A(int x) {...}
}
class B extends A {
public B(int x) {...}
}
B b = new B(3);
Error!
-no explicit call of
the A() constructor
-default constr. A()
does not exist
class A {
public A(int x) {...}
}
class B extends A {
public B(int x){
super(x) ...}
}
B b = new B(3);
OK
-A(int x)
-B(int x)
Explicit call
Cloning – Make copy of an object
www.SunilOS.com 65
Deep Cloning
www.SunilOS.com 66
Employee
Address
Employee
Address
clone
Shallow Cloning
www.SunilOS.com 67
Employee
Address
Employee
clone
Disclaimer
This is an educational presentation to enhance the skill
of computer science students.
This presentation is available for free to computer
science students.
Some internet images from different URLs are used in
this presentation to simplify technical examples and
correlate examples with the real world.
We are grateful to owners of these URLs and pictures.
www.SunilOS.com 68
Thank You!
www.SunilOS.com 69
www.SunilOS.com

More Related Content

What's hot

Hibernate
Hibernate Hibernate
Hibernate Sunil OS
 
JavaScript
JavaScriptJavaScript
JavaScriptSunil OS
 
Exception Handling
Exception HandlingException Handling
Exception HandlingSunil OS
 
Python Part 1
Python Part 1Python Part 1
Python Part 1Sunil OS
 
Python part2 v1
Python part2 v1Python part2 v1
Python part2 v1Sunil OS
 
Resource Bundle
Resource BundleResource Bundle
Resource BundleSunil OS
 
Collections Framework
Collections FrameworkCollections Framework
Collections FrameworkSunil OS
 
Machine learning ( Part 1 )
Machine learning ( Part 1 )Machine learning ( Part 1 )
Machine learning ( Part 1 )Sunil OS
 
Java Input Output and File Handling
Java Input Output and File HandlingJava Input Output and File Handling
Java Input Output and File HandlingSunil OS
 
Machine learning ( Part 2 )
Machine learning ( Part 2 )Machine learning ( Part 2 )
Machine learning ( Part 2 )Sunil OS
 
Java Threads and Concurrency
Java Threads and ConcurrencyJava Threads and Concurrency
Java Threads and ConcurrencySunil OS
 
Java Swing JFC
Java Swing JFCJava Swing JFC
Java Swing JFCSunil OS
 
Jsp/Servlet
Jsp/ServletJsp/Servlet
Jsp/ServletSunil OS
 
Machine learning ( Part 3 )
Machine learning ( Part 3 )Machine learning ( Part 3 )
Machine learning ( Part 3 )Sunil OS
 
Java Basics
Java BasicsJava Basics
Java BasicsSunil OS
 

What's hot (20)

Hibernate
Hibernate Hibernate
Hibernate
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Exception Handling
Exception HandlingException Handling
Exception Handling
 
DJango
DJangoDJango
DJango
 
C++
C++C++
C++
 
Python Part 1
Python Part 1Python Part 1
Python Part 1
 
Python part2 v1
Python part2 v1Python part2 v1
Python part2 v1
 
Resource Bundle
Resource BundleResource Bundle
Resource Bundle
 
Collections Framework
Collections FrameworkCollections Framework
Collections Framework
 
Machine learning ( Part 1 )
Machine learning ( Part 1 )Machine learning ( Part 1 )
Machine learning ( Part 1 )
 
Java Input Output and File Handling
Java Input Output and File HandlingJava Input Output and File Handling
Java Input Output and File Handling
 
Machine learning ( Part 2 )
Machine learning ( Part 2 )Machine learning ( Part 2 )
Machine learning ( Part 2 )
 
JAVA OOP
JAVA OOPJAVA OOP
JAVA OOP
 
Java Threads and Concurrency
Java Threads and ConcurrencyJava Threads and Concurrency
Java Threads and Concurrency
 
PDBC
PDBCPDBC
PDBC
 
C Basics
C BasicsC Basics
C Basics
 
Java Swing JFC
Java Swing JFCJava Swing JFC
Java Swing JFC
 
Jsp/Servlet
Jsp/ServletJsp/Servlet
Jsp/Servlet
 
Machine learning ( Part 3 )
Machine learning ( Part 3 )Machine learning ( Part 3 )
Machine learning ( Part 3 )
 
Java Basics
Java BasicsJava Basics
Java Basics
 

Similar to OOP V3.1

C# Starter L02-Classes and Objects
C# Starter L02-Classes and ObjectsC# Starter L02-Classes and Objects
C# Starter L02-Classes and ObjectsMohammad Shaker
 
Lies Told By The Kotlin Compiler
Lies Told By The Kotlin CompilerLies Told By The Kotlin Compiler
Lies Told By The Kotlin CompilerGarth Gilmour
 
Kotlin / Android Update
Kotlin / Android UpdateKotlin / Android Update
Kotlin / Android UpdateGarth Gilmour
 
Kotlin, smarter development for the jvm
Kotlin, smarter development for the jvmKotlin, smarter development for the jvm
Kotlin, smarter development for the jvmArnaud Giuliani
 
C# 7.0 Hacks and Features
C# 7.0 Hacks and FeaturesC# 7.0 Hacks and Features
C# 7.0 Hacks and FeaturesAbhishek Sur
 
C# 6.0 - April 2014 preview
C# 6.0 - April 2014 previewC# 6.0 - April 2014 preview
C# 6.0 - April 2014 previewPaulo Morgado
 
Intro to object oriented programming
Intro to object oriented programmingIntro to object oriented programming
Intro to object oriented programmingDavid Giard
 
Dotnet unit 4
Dotnet unit 4Dotnet unit 4
Dotnet unit 4007laksh
 
Computer science-2010-cbse-question-paper
Computer science-2010-cbse-question-paperComputer science-2010-cbse-question-paper
Computer science-2010-cbse-question-paperDeepak Singh
 
Lies Told By The Kotlin Compiler
Lies Told By The Kotlin CompilerLies Told By The Kotlin Compiler
Lies Told By The Kotlin CompilerGarth Gilmour
 
Practices For Becoming A Better Programmer
Practices For Becoming A Better ProgrammerPractices For Becoming A Better Programmer
Practices For Becoming A Better ProgrammerSrikanth Shreenivas
 
Type script by Howard
Type script by HowardType script by Howard
Type script by HowardLearningTech
 
Java Polymorphism Part 2
Java Polymorphism Part 2Java Polymorphism Part 2
Java Polymorphism Part 2AathikaJava
 

Similar to OOP V3.1 (20)

OOP v3
OOP v3OOP v3
OOP v3
 
OOP Core Concept
OOP Core ConceptOOP Core Concept
OOP Core Concept
 
C++ oop
C++ oopC++ oop
C++ oop
 
C# Starter L02-Classes and Objects
C# Starter L02-Classes and ObjectsC# Starter L02-Classes and Objects
C# Starter L02-Classes and Objects
 
Lies Told By The Kotlin Compiler
Lies Told By The Kotlin CompilerLies Told By The Kotlin Compiler
Lies Told By The Kotlin Compiler
 
Kotlin / Android Update
Kotlin / Android UpdateKotlin / Android Update
Kotlin / Android Update
 
L10
L10L10
L10
 
Object-oriented Basics
Object-oriented BasicsObject-oriented Basics
Object-oriented Basics
 
Codejunk Ignitesd
Codejunk IgnitesdCodejunk Ignitesd
Codejunk Ignitesd
 
Kotlin, smarter development for the jvm
Kotlin, smarter development for the jvmKotlin, smarter development for the jvm
Kotlin, smarter development for the jvm
 
C# 7.0 Hacks and Features
C# 7.0 Hacks and FeaturesC# 7.0 Hacks and Features
C# 7.0 Hacks and Features
 
C# 6.0 - April 2014 preview
C# 6.0 - April 2014 previewC# 6.0 - April 2014 preview
C# 6.0 - April 2014 preview
 
Intro to object oriented programming
Intro to object oriented programmingIntro to object oriented programming
Intro to object oriented programming
 
Dotnet unit 4
Dotnet unit 4Dotnet unit 4
Dotnet unit 4
 
Computer science-2010-cbse-question-paper
Computer science-2010-cbse-question-paperComputer science-2010-cbse-question-paper
Computer science-2010-cbse-question-paper
 
Basic c#
Basic c#Basic c#
Basic c#
 
Lies Told By The Kotlin Compiler
Lies Told By The Kotlin CompilerLies Told By The Kotlin Compiler
Lies Told By The Kotlin Compiler
 
Practices For Becoming A Better Programmer
Practices For Becoming A Better ProgrammerPractices For Becoming A Better Programmer
Practices For Becoming A Better Programmer
 
Type script by Howard
Type script by HowardType script by Howard
Type script by Howard
 
Java Polymorphism Part 2
Java Polymorphism Part 2Java Polymorphism Part 2
Java Polymorphism Part 2
 

More from Sunil OS

Threads v3
Threads v3Threads v3
Threads v3Sunil OS
 
Exception Handling v3
Exception Handling v3Exception Handling v3
Exception Handling v3Sunil OS
 
Python Pandas
Python PandasPython Pandas
Python PandasSunil OS
 
Angular 8
Angular 8 Angular 8
Angular 8 Sunil OS
 
C# Variables and Operators
C# Variables and OperatorsC# Variables and Operators
C# Variables and OperatorsSunil OS
 
Rays Technologies
Rays TechnologiesRays Technologies
Rays TechnologiesSunil OS
 

More from Sunil OS (8)

Threads v3
Threads v3Threads v3
Threads v3
 
Exception Handling v3
Exception Handling v3Exception Handling v3
Exception Handling v3
 
Python Pandas
Python PandasPython Pandas
Python Pandas
 
Angular 8
Angular 8 Angular 8
Angular 8
 
C# Variables and Operators
C# Variables and OperatorsC# Variables and Operators
C# Variables and Operators
 
C# Basics
C# BasicsC# Basics
C# Basics
 
Rays Technologies
Rays TechnologiesRays Technologies
Rays Technologies
 
JUnit 4
JUnit 4JUnit 4
JUnit 4
 

Recently uploaded

ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...M56BOOKSTORE PRODUCT/SERVICE
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfUmakantAnnand
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxRoyAbrique
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
MENTAL STATUS EXAMINATION format.docx
MENTAL     STATUS EXAMINATION format.docxMENTAL     STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docxPoojaSen20
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfSumit Tiwari
 

Recently uploaded (20)

Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.Compdf
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
MENTAL STATUS EXAMINATION format.docx
MENTAL     STATUS EXAMINATION format.docxMENTAL     STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docx
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
 

OOP V3.1

  • 2. 2 Object-Oriented Programming Concepts What is an Object? What is a Class? What is a Message? Encapsulation? Inheritance? Polymorphism/Dynamic Binding? Data Hiding? Data Abstraction? www.SunilOS.com
  • 3. 3 Java Primitive Data Types Primitive Data Types: o boolean true or false o char unicode (16 bits) o byte signed 8 bit integer o short signed 16 bit integer o int signed 32 bit integer o long signed 64 bit integer o float,double floating point values www.SunilOS.com
  • 4. 4 Other Data Types Reference types (composite) o objects o arrays strings are supported by a built-in class named String (java.lang.String). string literals are supported by the language (as a special case). www.SunilOS.com
  • 5. www.SunilOS.com 5 Attributes String color = “Red” ; int borderWidth = 5 ; //…… System.out.println(borderWidth) ;
  • 6. www.SunilOS.com 6 Custom Data Type public class Shape { private String color = null; private int borderWidth = 0; public int getBorderWidth() { return borderWidth; } public void setBorderWidth(int bw) { borderWidth = bw; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } } :Shape -color :String -borderWidth:int +getColor():String +setColor() +getBorderWidth():int +setBorderWidth() Members Member variables Member methods
  • 7. www.SunilOS.com 7 Method Definition public class Shape { .. public void setBorderWidth(int bw) { borderWidth = bw; } } Method
  • 8. www.SunilOS.com 8 Define attribute/variable  public class TestShape { o public static void main(String[] args){  Shape s; //Declaration  s = new Shape(); //Instantiation  s.setColor(“Red”);  s.setBorderWidth(3);  ….  int borderW =s.getBorderWidth();  System.out.println(borderW) ; o }  } S is an object here S is an instance here
  • 9. Real World Entities – More Classes www.SunilOS.com 9 :Automobile -color :String -speed:int -make:String +$NO_OF_GEARS +getColor():String +setColor() +getMake():String +setMake() +break() +changeGear() +accelerator() +getSpeed():int :Person -name:String -dob : Date -address:String +$AVG_AGE +getName():String +setName() +getAdress():String +setAddress() +getDob (): Date +setDob () +getAge() : int :Account -number:String -accountType : String -balance:double +getNumber():String +setNumber() +getAccountType():String +setAccountType() +deposit () +withdrawal () +getBalance():double +fundTransfer() +payBill()
  • 10. www.SunilOS.com 10 Define A Class - Shape public class Shape { private String color = null; private int borderWidth = 0; public static final float PI = 3.14f; public int getBorderWidth() { return borderWidth; } public void setBorderWidth(int bw) { borderWidth = bw; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } } :Shape -color :String -borderWidth:int +$PI=3.14 +getColor():String +setColor() +getBorderWidth():int +setBorderWidth() Shape s1 = new Shape(); Shape s2 = new Shape(); S.o.p( s1.PI ); S.o.p( s2.PI ); S.o.p( Shape.PI );
  • 11. www.SunilOS.com 11 Constructor public class Shape { private String color = null; private int borderWidth = 0; public Shape(){ System.out.println( “This is default constructor”); } …………… Shape s = new Shape();  Constructor is just like a method.  It does not have return type.  Its name is same as Class name.  It is called at the time of object instantiation (new Shape()).  Constructors are used to initialize instance/class variables.  A class may have multiple constructors with different number of parameters.
  • 12. www.SunilOS.com 12 Multiple Constructors One class may have more than one constructors. Multiple constructors are used to initialize different sets of class attributes. When a class has more than one constructors, it is called Constructor Overloading. Constructors those receive parameters are called Parameterized Constructors.
  • 13. www.SunilOS.com 13 Constructors Overloading public class Shape { private String color = null; private int borderWidth = 0; public Shape(){ System.out.println(“This is default constuctor”) } public Shape (String c, int w){ color=c; borderWidth=w; } Shape s = new Shape() s.setColor(“Red”); s.setBorderWidth(5); Or Shape s = new Shape(“Red”,5)
  • 14. Default Constructor  Default constructor does not receive any parameter. o public Shape(){ .. }  If User does not define any constructor then Default Constructor will be created by Java Compiler.  But if user defines single or multiple constructors then default constructor will not be generated by Java Compiler. www.SunilOS.com 14
  • 15. www.SunilOS.com 15 Declare an Instance/Object Declare Primitive Type int i; i=5; Declare Object Shape s1,s2; s1 = new Shape(); s2 = new Shape(); 5 4 Bytes s1 2 Bytes s2 2 Bytes getColor() setColor() getBorderWidth() setBorderWidth() Color borderWidth Color borderWidth
  • 16. www.SunilOS.com 16 Instance vs static attributes instance static instance static Attributes Methods +getColor() +setColor() +getBorderWidth() +setBorderWiidth() PI = 3.14 Shape s1, s2 s1 = new Shape() s2 = new Shape() color = Red borderWidth= 5 color = White borderWidth= 10 s1 s2 s1.getColor() s2.getBorderWidth() s1.PI Shape.PI Class 1011 1010 1010 1011 2B 2B :Shape -color :String -borderWidth:int +$PI =3.14 +getColor():String +setColor() +getBorderWidth():int +setBorderWidth()
  • 17. OOP Key Concepts Encapsulation: o Creates Expert Classes. Inheritance: o Creates Specialized Classes. Polymorphism: o Provides Dynamic behaviour at Runtime. www.SunilOS.com 17
  • 19. Expert Class Encapsulation will create Expert class Expert class has related attributes and method www.SunilOS.com 19 Doctor Advocate Engineer Astronaut
  • 21. www.SunilOS.com 21 Encapsulation Gathering all related methods and attributes in a Class is called encapsulation. Often, for practical reasons, an object may wish to expose some of its variables or hide some of its methods. Access Levels: Modifier Class Subclass Package World private X protected X X X public X X X X
  • 23. Specialization www.SunilOS.com 23 Doctor General Physician Heart Specialist ENT Specialist Neurologist Parent Class Child Classes
  • 25. www.SunilOS.com 25 Inheritance :Shape #color :String #borderWidth:int +getColor():String +setColor() +getBorderWidth():int +setBorderWidth() :Rectangle -length :int -width:int +area() +getLength() +setLength() :Circle -radius : int +area() +getRadius() +setRadius() :Triangle -base:int -hight:int +area() +getBase() +setBase() Circle c =new Circle(); c.getColor(); c.getBorderWidth(); c.area(); Access Modifiers: -private #protected +public IS relation Generalize Class Specialize Class :Object
  • 26. www.SunilOS.com 26 How Objects are Created Circle c = new Circle( ); Execution Time c Shape Circle Object 1. c Shape Circle Object 2. Object c 3. Shape Circle
  • 27. www.SunilOS.com 27 Parents Can Keep Child’s Reference  Circle c = new Circle(); o c.getColor() o c.getBorderBidth() o c.area()  Shape s = new Circle(); o s.getColor() o s.getBorderBidth() o s.area()  Circle c1 = (Circle) s; o c1.getColor() o c1.getBorderBidth() o c1.area()
  • 28. www.SunilOS.com 28 Parents Can Keep Child’s Reference Shape s = new Circle( ); Execution Time s Shape Circle Object 1. s Shape Circle Object 2. Object s 3. Shape Circle Accessible Window
  • 29. www.SunilOS.com 29 Method Overriding – area() :Shape color :String borderWidth:int getColor():String setColor() getBorderWidth():int setBorderWidth() area() :Rectangle length :int width:int area() getLength() setLength() :Circle radius area() getRadius() setRadius() :Triangle base:int hight:int area() getBase() setBase() Shape s= new Circle() s.getColor(); s.getBorderWidth(); s.area();
  • 30. Final Class: experts who does not need specialization www.SunilOS.com 30
  • 31. Final Class: does not have child www.SunilOS.com 31 The Complete Man Does not need specialization
  • 32. Final class: the complete class Final class does not have child. It is defined by final keyword public final class String {.. } www.SunilOS.com 32 :String +length() +toUpperCase() +toLowerCase() +indexOf() +replace() +substring() :Math +max() +min() +sqrt () +abs() +random() +sin() +tan()
  • 33. www.SunilOS.com 33 The Final modifier Class : o Final classes can not have Children. o public final class Math Method: o Final Methods can not be overridden. o public final double sqrt(int i); Attribute: o Final attributes can be assigned a value once in a life. o public final float PI = 3.14;
  • 35. www.SunilOS.com 35 Polymorphism  Three Common Uses of Polymorphism: o Using Polymorphism in Arrays. o Using Polymorphism for Method Arguments. o Using Polymorphism for Method Return Type.  Ways to Provide polymorphism: o Through Interfaces. o Method Overriding. o Method Overloading.
  • 36. www.SunilOS.com 36 1) Using Polymorphism in Arrays Shape s[] = new Shape[3]; s[0] = new Rectangle() s[1] = new Circle() s[2] = new Triangle() s[0]:Rectangle color borderWidth length = 17 Width = 35 s[1]:Circle color borderWidth radius = 11 s[2]:Triangle color borderWidth base:15 hight:7
  • 37. www.SunilOS.com 37 1) Using Polymorphism in Arrays  Shape[] s;  s = new Shape[3];  s[0] = new Rectangle()  s[1] = new Circle()  s[2] = new Triangle() 2B 3 [0] [1] [2] length color borderWidth length width color borderWidth radius color borderWidth Base hight 1010 1111 1011 1010 1011 1111 1000 1000
  • 38. www.SunilOS.com 38 2) Using Polymorphism for Method Arguments public static void main(String[] args) { Shape[] s = new Shape[3]; s[0] = new Rectangle(); s[1] = new Circle(); s[2] = new Triangle(); double totalArea = calcArea(s); System.out.println(totalArea); } public static double calcArea(Shape[] s) { double totalArea = 0; for(int i =0;i<s.length; i++){ totalArea += s[i].area(); } return totalArea; } *The method overriding is an example of runtime polymorphism.
  • 39. www.SunilOS.com 39 3) Polymorphism using Return Type public static Shape getShape(int i) { if (i == 1) return new Rectangle(); if (i == 2) return new Circle(); if (i == 3) return new Triangle(); }
  • 40. www.SunilOS.com 40 Method Overloading PrintWriter o println(String) o println(int) o println(double) o println(boolean) o println()
  • 42. www.SunilOS.com 42 Abstract Class  What code can be written in Shape.area() method? o Nothing, area() method is defined by child classes. It should have only declaration.  Is Shape a concrete class? o NO, Rectangle, Circle and Triangle are concrete classes.  If it has only area declaration then o Method will be abstract and class will be abstract as well.  Benefit? o Parent will enforce child to implement area() method. o Child has to mandatorily define (implement) area method. o This will achieve polymorphism.
  • 43. www.SunilOS.com 43 Shape public abstract class Shape { String color = null; int borderWidth = 0; public int getBorderWidth() { return borderWidth; } … public abstract double area(); }  Instance of an abstract class can not be created o Shape s= new Shape();
  • 44. www.SunilOS.com 44 Interface When all methods are abstract then interface is created. It has abstract methods and constants. It represents a role (abstract view) for a class. One interface can extend another interface using extends keyword. One Class can implement multiple interfaces using implements keyword.
  • 45. www.SunilOS.com 45 Interfaces Richman earnMoney() donation() party() Businessman name address earnMoney() donation() party() Richman rm = new Businessman(); SocialWorker sw = new Businessman(); Businessman bm = new Businessman(); SocialWorker helpToOthers() Businessman name address earnMoney() donation() party() helpToOthers() Businessman name address helpToOthers()
  • 46. www.SunilOS.com 46 interface Richman public interface Richman { o public void earnMoney(); o public void donation(); o public void party(); }
  • 47. www.SunilOS.com 47 interface SocialWorker public interface SocialWorker{ o public void helpToOthers(); }
  • 48. www.SunilOS.com 48 interface SocialWorker  public class Businessman extends Person implements Richman, SocialWorker {  private String name;  private String address;  public void donation() { o System.out.println("Giving Donation");  }
  • 49. www.SunilOS.com 49 Interface It declares APIs. Specifications are defined as interfaces. o JDBC o Collection o EJB o JNI o etc.
  • 51. Data Abstraction ( Cont. ) Data abstraction is the way to create complex data types and exposing only meaningful operations to interact with data type, whereas hiding all the implementation details from outside world. Data Abstraction is a process of hiding the implementation details and showing only the functionality. Data Abstraction in java is achieved by interfaces and abstract classes. www.SunilOS.com 51
  • 53. Data Hiding ( Cont. ) Data Hiding is an aspect of Object Oriented Programming (OOP) that allows developers to protect private data and hide implementation details. Developers can hide class members from other classes. Access of class members can be restricted or hide with the help of access modifiers. www.SunilOS.com 53
  • 54. www.SunilOS.com 54 How a constructor can call another constructor ?  public class Person {  protected String firstName = null;  protected String lastName = null;  protected String address = null;  public Person() {  System.out.println("Person Default Con");  }  public Person(String fn, String ln) { o firstName = fn; o lastName = ln; o System.out.println(“2 params constructor is called");  }
  • 55. www.SunilOS.com 55 How a constructor can call another constructor ?  public Person(String fn, String ln, String address) { o firstName = fn; o lastName = ln; o this.address = address; o System.out.println(“3 params constructor is called");  }
  • 56. www.SunilOS.com 56 How a constructor can call another constructor ?  public Person() {  System.out.println("Person Default Con");  }  public Person(String fn, String ln) { o firstName = fn; o lastName = ln; o System.out.println("2 params constructor is called");  }  public Person(String fn, String ln, String address) { 1. this(fn,ln) ; 2. this.address = address; 3. System.out.println(“3 params constructor is called");  }
  • 57. www.SunilOS.com 57 How to Call Parent Constructor  public class Employee extends Person {  private String designation = null;  public Employee() {  System.out.println("Default Constructor");  }  public Employee(String fn, String ln, String des) {  super(fn, ln);  designation = des;  System.out.println(“3 params constructor is called");  }
  • 58. www.SunilOS.com 58 Super default constructor  If Child constructor does not call parent’s constructor then Parent’s default constructor is automatically called.  public Employee() {  System.out.println("Default Constructor");  }  Is Equal to  public Employee() {  super();  System.out.println("Default Constructor");  }
  • 59. www.SunilOS.com 59 Super default constructor (cont.)  public Employee(String fn, String ln, String des) { o designation = des; o System.out.println(“3 params constructor is called ");  }  Is Equal to  public Employee(String fn, String ln, String des) { o super(); o designation = des; o System.out.println(“3 params constructor is called");  }
  • 60. www.SunilOS.com 60 How to call Parent’s overridden method?  public class Person {  public void changeAddress() { o System.out.println("Person change Address");  }  …  public class Employee extends Person {  public void changeAddress() { o System.out.println("*****"); o super.changeAddress(); o System.out.println("Employee change Address");  }  …
  • 61. www.SunilOS.com 61 Interesting facts - Overriding  public class Account{ o public int getAmount() { o return 5; o }  }  public class SavingAccount extends Account { o public int getAmount() {  return 10; o }  }
  • 62. www.SunilOS.com 62 What is Output Of  public class Test {  public static void main(String[] args) { o SavingAccount s = new SavingAccount (); o Account a = new Account (); o Account sa = new SavingAccount (); o System.out.println(s.getAmount()); o System.out.println(a.getAmount()); o System.out.println(sa.getAmount()); o }  }
  • 63. Interesting facts - Overriding  public class Account{ o public int getAmount() { o return 5; o }  }  public class SavingAccount extends Account{ o public int getAmount() {  int i = super.getAmount() + 10;  return i; o }  } www.SunilOS.com 63
  • 64. www.SunilOS.com 64 Constructor and Inheritance class A { ... } class B extends A { public B(int x){} } B b = new B(3); OK -default constr. A() -B(int x) Implicit call of base class constructor class A { public A() {...} } class B extends A { public B(int x) {...} } B b = new B(3); OK -A() -B(int x) class A { public A(int x) {...} } class B extends A { public B(int x) {...} } B b = new B(3); Error! -no explicit call of the A() constructor -default constr. A() does not exist class A { public A(int x) {...} } class B extends A { public B(int x){ super(x) ...} } B b = new B(3); OK -A(int x) -B(int x) Explicit call
  • 65. Cloning – Make copy of an object www.SunilOS.com 65
  • 68. Disclaimer This is an educational presentation to enhance the skill of computer science students. This presentation is available for free to computer science students. Some internet images from different URLs are used in this presentation to simplify technical examples and correlate examples with the real world. We are grateful to owners of these URLs and pictures. www.SunilOS.com 68

Editor's Notes

  1. www.sunilos.com
  2. www.sunrays.co.in
  3. www.sunrays.co.in
  4. www.sunrays.co.in
  5. www.sunrays.co.in
  6. www.sunrays.co.in
  7. www.sunrays.co.in
  8. www.sunrays.co.in
  9. www.sunrays.co.in
  10. www.sunrays.co.in
  11. www.sunrays.co.in
  12. www.sunrays.co.in
  13. www.sunrays.co.in
  14. www.sunrays.co.in
  15. www.sunrays.co.in
  16. www.sunrays.co.in
  17. www.sunrays.co.in
  18. www.sunrays.co.in
  19. www.sunrays.co.in
  20. www.sunrays.co.in
  21. www.sunrays.co.in
  22. www.sunrays.co.in
  23. www.sunrays.co.in
  24. www.sunrays.co.in
  25. www.sunrays.co.in
  26. www.sunrays.co.in
  27. www.sunrays.co.in
  28. www.sunrays.co.in
  29. www.sunrays.co.in
  30. www.sunrays.co.in
  31. www.sunrays.co.in
  32. www.sunrays.co.in
  33. www.sunrays.co.in
  34. www.sunrays.co.in
  35. www.sunrays.co.in
  36. www.sunrays.co.in
  37. www.sunrays.co.in
  38. www.sunrays.co.in
  39. www.sunrays.co.in
  40. www.sunrays.co.in
  41. www.sunrays.co.in
  42. www.sunrays.co.in
  43. www.sunrays.co.in
  44. www.sunrays.co.in
  45. www.sunrays.co.in
  46. www.sunrays.co.in