SlideShare ist ein Scribd-Unternehmen logo
1 von 55
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.14;
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
s2s1.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
www.SunilOS.com 18
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 Packag
e
World
private X
protected X X X
public X X X X
www.SunilOS.com 19
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();
:Object
UML Notation
www.SunilOS.com 20
How Objects are Created
Circle c = new Circle( );
Execution Time
c
Shape
Circle
Object
1.1.1.1.
c
Shape
Circle
Object
2.2.2.2.
Object
c
3.3.3.3.
Shape
Circle
www.SunilOS.com 21
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 22
Parents Can Keep Child’s Reference
Shape s = new Circle( );
Execution Time
s
Shape
Circle
Object
1.1.1.1.
s
Shape
Circle
Object
2.2.2.2.
Object
s
3.3.3.3.
Shape
Circle
Accessible
Window
www.SunilOS.com 23
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();
www.SunilOS.com 24
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 25
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 26
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 27
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 28
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 29
Method Overloading
PrintWriter
o println(String)
o println(int)
o println(double)
o println(boolean)
o println()
www.SunilOS.com 30
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;
www.SunilOS.com 31
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 32
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 33
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 34
Interfaces
Richman
earnMony()
donation()
party()
Businessman
name
address
earnMony()
donation()
party()
Richman rm = new Businessman();
SocialWorker sw = new Businessman();
Businessman bm = new Businessman();
SocialWorker
helpToOthers()
Businessman
name
address
earnMony()
donation()
party()
helpToOthers()
Businessman
name
address
helpToOthers()
www.SunilOS.com 35
interface Richman
public interface Richman {
o public void earnMoney();
o public void donation();
o public void party();
}
www.SunilOS.com 36
interface SocialWorker
public interface SocialWorker{
o public void helpToOthers();
}
www.SunilOS.com 37
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 38
Interface
It declares APIs.
Specifications are defined as interfaces.
o JDBC
o Collection
o EJB
o JNI
o etc.
Data Abstraction
www.SunilOS.com 39
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 40
Data Hiding
www.SunilOS.com 41
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 42
www.SunilOS.com 43
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 44
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 45
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 46
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 47
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 48
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 49
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 50
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 51
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 52
www.SunilOS.com 53
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
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 54
Thank You!
www.SunilOS.com 55
www.SunilOS.com

Weitere ähnliche Inhalte

Was ist angesagt?

JavaScript
JavaScriptJavaScript
JavaScriptSunil OS
 
Java 8 - CJ
Java 8 - CJJava 8 - CJ
Java 8 - CJSunil OS
 
Threads V4
Threads  V4Threads  V4
Threads V4Sunil OS
 
Basic Concepts of OOPs (Object Oriented Programming in Java)
Basic Concepts of OOPs (Object Oriented Programming in Java)Basic Concepts of OOPs (Object Oriented Programming in Java)
Basic Concepts of OOPs (Object Oriented Programming in Java)Michelle Anne Meralpis
 
Collection v3
Collection v3Collection v3
Collection v3Sunil OS
 
Polymorphism In Java
Polymorphism In JavaPolymorphism In Java
Polymorphism In JavaSpotle.ai
 
Java Basics V3
Java Basics V3Java Basics V3
Java Basics V3Sunil OS
 
Java - Generic programming
Java - Generic programmingJava - Generic programming
Java - Generic programmingRiccardo Cardin
 
9. Input Output in java
9. Input Output in java9. Input Output in java
9. Input Output in javaNilesh Dalvi
 
Java - Exception Handling Concepts
Java - Exception Handling ConceptsJava - Exception Handling Concepts
Java - Exception Handling ConceptsVicter Paul
 
Jsp/Servlet
Jsp/ServletJsp/Servlet
Jsp/ServletSunil OS
 

Was ist angesagt? (20)

JavaScript
JavaScriptJavaScript
JavaScript
 
Java IO
Java IOJava IO
Java IO
 
Java 8 - CJ
Java 8 - CJJava 8 - CJ
Java 8 - CJ
 
Threads V4
Threads  V4Threads  V4
Threads V4
 
Basic Concepts of OOPs (Object Oriented Programming in Java)
Basic Concepts of OOPs (Object Oriented Programming in Java)Basic Concepts of OOPs (Object Oriented Programming in Java)
Basic Concepts of OOPs (Object Oriented Programming in Java)
 
Java 8 Lambda Expressions
Java 8 Lambda ExpressionsJava 8 Lambda Expressions
Java 8 Lambda Expressions
 
Generics in java
Generics in javaGenerics in java
Generics in java
 
Collection v3
Collection v3Collection v3
Collection v3
 
Polymorphism In Java
Polymorphism In JavaPolymorphism In Java
Polymorphism In Java
 
Java Basics V3
Java Basics V3Java Basics V3
Java Basics V3
 
Java - Generic programming
Java - Generic programmingJava - Generic programming
Java - Generic programming
 
Arrays in java
Arrays in javaArrays in java
Arrays in java
 
9. Input Output in java
9. Input Output in java9. Input Output in java
9. Input Output in java
 
OOP java
OOP javaOOP java
OOP java
 
Java(Polymorphism)
Java(Polymorphism)Java(Polymorphism)
Java(Polymorphism)
 
Generics C#
Generics C#Generics C#
Generics C#
 
Java - Exception Handling Concepts
Java - Exception Handling ConceptsJava - Exception Handling Concepts
Java - Exception Handling Concepts
 
Log4 J
Log4 JLog4 J
Log4 J
 
Jsp/Servlet
Jsp/ServletJsp/Servlet
Jsp/Servlet
 
OOP V3.1
OOP V3.1OOP V3.1
OOP V3.1
 

Andere mochten auch

Java Swing JFC
Java Swing JFCJava Swing JFC
Java Swing JFCSunil OS
 
Resource Bundle
Resource BundleResource Bundle
Resource BundleSunil OS
 
C# Variables and Operators
C# Variables and OperatorsC# Variables and Operators
C# Variables and OperatorsSunil OS
 
Hibernate
Hibernate Hibernate
Hibernate Sunil OS
 
Character stream classes .52
Character stream classes .52Character stream classes .52
Character stream classes .52myrajendra
 
Byte stream classes.49
Byte stream classes.49Byte stream classes.49
Byte stream classes.49myrajendra
 
Inner classes9 cm604.28
Inner classes9 cm604.28Inner classes9 cm604.28
Inner classes9 cm604.28myrajendra
 
Nested classes in java
Nested classes in javaNested classes in java
Nested classes in javaRicha Singh
 
Rays Technologies
Rays TechnologiesRays Technologies
Rays TechnologiesSunil OS
 
Inner classes ,annoumous and outer classes in java
Inner classes ,annoumous and outer classes in javaInner classes ,annoumous and outer classes in java
Inner classes ,annoumous and outer classes in javaAdil Mehmoood
 
Various io stream classes .47
Various io stream classes .47Various io stream classes .47
Various io stream classes .47myrajendra
 
Java: Objects and Object References
Java: Objects and Object ReferencesJava: Objects and Object References
Java: Objects and Object ReferencesTareq Hasan
 

Andere mochten auch (20)

Java Swing JFC
Java Swing JFCJava Swing JFC
Java Swing JFC
 
JUnit 4
JUnit 4JUnit 4
JUnit 4
 
C Basics
C BasicsC Basics
C Basics
 
Resource Bundle
Resource BundleResource Bundle
Resource Bundle
 
C# Variables and Operators
C# Variables and OperatorsC# Variables and Operators
C# Variables and Operators
 
Hibernate
Hibernate Hibernate
Hibernate
 
Character stream classes .52
Character stream classes .52Character stream classes .52
Character stream classes .52
 
Byte stream classes.49
Byte stream classes.49Byte stream classes.49
Byte stream classes.49
 
Inner classes9 cm604.28
Inner classes9 cm604.28Inner classes9 cm604.28
Inner classes9 cm604.28
 
Nested classes in java
Nested classes in javaNested classes in java
Nested classes in java
 
C++
C++C++
C++
 
Rays Technologies
Rays TechnologiesRays Technologies
Rays Technologies
 
Inner classes
Inner classesInner classes
Inner classes
 
Files in java
Files in javaFiles in java
Files in java
 
Inner classes ,annoumous and outer classes in java
Inner classes ,annoumous and outer classes in javaInner classes ,annoumous and outer classes in java
Inner classes ,annoumous and outer classes in java
 
Various io stream classes .47
Various io stream classes .47Various io stream classes .47
Various io stream classes .47
 
Java: Objects and Object References
Java: Objects and Object ReferencesJava: Objects and Object References
Java: Objects and Object References
 
C++ oop
C++ oopC++ oop
C++ oop
 
Java Inner Classes
Java Inner ClassesJava Inner Classes
Java Inner Classes
 
C# Basics
C# BasicsC# Basics
C# Basics
 

Ähnlich wie JAVA OOP

C# Starter L02-Classes and Objects
C# Starter L02-Classes and ObjectsC# Starter L02-Classes and Objects
C# Starter L02-Classes and ObjectsMohammad Shaker
 
Dotnet unit 4
Dotnet unit 4Dotnet unit 4
Dotnet unit 4007laksh
 
this is the concept in C++ under object oriented programming language "POLYMO...
this is the concept in C++ under object oriented programming language "POLYMO...this is the concept in C++ under object oriented programming language "POLYMO...
this is the concept in C++ under object oriented programming language "POLYMO...sj9399037128
 
14. Defining Classes
14. Defining Classes14. Defining Classes
14. Defining ClassesIntro C# Book
 
Object-Oriented Programming with C#
Object-Oriented Programming with C#Object-Oriented Programming with C#
Object-Oriented Programming with C#Svetlin Nakov
 
Java 5 New Feature
Java 5 New FeatureJava 5 New Feature
Java 5 New Featurexcoda
 
Apache Flink Training: DataStream API Part 2 Advanced
Apache Flink Training: DataStream API Part 2 Advanced Apache Flink Training: DataStream API Part 2 Advanced
Apache Flink Training: DataStream API Part 2 Advanced Flink Forward
 
Intro to object oriented programming
Intro to object oriented programmingIntro to object oriented programming
Intro to object oriented programmingDavid Giard
 
Visula C# Programming Lecture 6
Visula C# Programming Lecture 6Visula C# Programming Lecture 6
Visula C# Programming Lecture 6Abou Bakr Ashraf
 
Charcater and Strings.ppt Charcater and Strings.ppt
Charcater and Strings.ppt Charcater and Strings.pptCharcater and Strings.ppt Charcater and Strings.ppt
Charcater and Strings.ppt Charcater and Strings.pptmulualem37
 
Structure in programming in c or c++ or c# or java
Structure in programming  in c or c++ or c# or javaStructure in programming  in c or c++ or c# or java
Structure in programming in c or c++ or c# or javaSamsil Arefin
 
20 Object-oriented programming principles
20 Object-oriented programming principles20 Object-oriented programming principles
20 Object-oriented programming principlesmaznabili
 
C# 6.0 - April 2014 preview
C# 6.0 - April 2014 previewC# 6.0 - April 2014 preview
C# 6.0 - April 2014 previewPaulo Morgado
 

Ähnlich wie JAVA OOP (20)

OOP Core Concept
OOP Core ConceptOOP Core Concept
OOP Core Concept
 
OOP v3
OOP v3OOP v3
OOP v3
 
C# Starter L02-Classes and Objects
C# Starter L02-Classes and ObjectsC# Starter L02-Classes and Objects
C# Starter L02-Classes and Objects
 
Dotnet unit 4
Dotnet unit 4Dotnet unit 4
Dotnet unit 4
 
this is the concept in C++ under object oriented programming language "POLYMO...
this is the concept in C++ under object oriented programming language "POLYMO...this is the concept in C++ under object oriented programming language "POLYMO...
this is the concept in C++ under object oriented programming language "POLYMO...
 
L10
L10L10
L10
 
Oops concept
Oops conceptOops concept
Oops concept
 
14. Defining Classes
14. Defining Classes14. Defining Classes
14. Defining Classes
 
Object-oriented Basics
Object-oriented BasicsObject-oriented Basics
Object-oriented Basics
 
Object-Oriented Programming with C#
Object-Oriented Programming with C#Object-Oriented Programming with C#
Object-Oriented Programming with C#
 
Java 5 New Feature
Java 5 New FeatureJava 5 New Feature
Java 5 New Feature
 
Basic c#
Basic c#Basic c#
Basic c#
 
Apache Flink Training: DataStream API Part 2 Advanced
Apache Flink Training: DataStream API Part 2 Advanced Apache Flink Training: DataStream API Part 2 Advanced
Apache Flink Training: DataStream API Part 2 Advanced
 
Intro to object oriented programming
Intro to object oriented programmingIntro to object oriented programming
Intro to object oriented programming
 
Visula C# Programming Lecture 6
Visula C# Programming Lecture 6Visula C# Programming Lecture 6
Visula C# Programming Lecture 6
 
Charcater and Strings.ppt Charcater and Strings.ppt
Charcater and Strings.ppt Charcater and Strings.pptCharcater and Strings.ppt Charcater and Strings.ppt
Charcater and Strings.ppt Charcater and Strings.ppt
 
Structure in programming in c or c++ or c# or java
Structure in programming  in c or c++ or c# or javaStructure in programming  in c or c++ or c# or java
Structure in programming in c or c++ or c# or java
 
Structure in c
Structure in cStructure in c
Structure in c
 
20 Object-oriented programming principles
20 Object-oriented programming principles20 Object-oriented programming principles
20 Object-oriented programming principles
 
C# 6.0 - April 2014 preview
C# 6.0 - April 2014 previewC# 6.0 - April 2014 preview
C# 6.0 - April 2014 preview
 

Mehr von Sunil OS

Java IO Streams V4
Java IO Streams V4Java IO Streams V4
Java IO Streams V4Sunil OS
 
Threads v3
Threads v3Threads v3
Threads v3Sunil OS
 
Exception Handling v3
Exception Handling v3Exception Handling v3
Exception Handling v3Sunil OS
 
Machine learning ( Part 3 )
Machine learning ( Part 3 )Machine learning ( Part 3 )
Machine learning ( Part 3 )Sunil OS
 
Machine learning ( Part 2 )
Machine learning ( Part 2 )Machine learning ( Part 2 )
Machine learning ( Part 2 )Sunil OS
 
Machine learning ( Part 1 )
Machine learning ( Part 1 )Machine learning ( Part 1 )
Machine learning ( Part 1 )Sunil OS
 
Python Pandas
Python PandasPython Pandas
Python PandasSunil OS
 
Python part2 v1
Python part2 v1Python part2 v1
Python part2 v1Sunil OS
 
Angular 8
Angular 8 Angular 8
Angular 8 Sunil OS
 
Python Part 1
Python Part 1Python Part 1
Python Part 1Sunil OS
 

Mehr von Sunil OS (12)

Java IO Streams V4
Java IO Streams V4Java IO Streams V4
Java IO Streams V4
 
DJango
DJangoDJango
DJango
 
PDBC
PDBCPDBC
PDBC
 
Threads v3
Threads v3Threads v3
Threads v3
 
Exception Handling v3
Exception Handling v3Exception Handling v3
Exception Handling v3
 
Machine learning ( Part 3 )
Machine learning ( Part 3 )Machine learning ( Part 3 )
Machine learning ( Part 3 )
 
Machine learning ( Part 2 )
Machine learning ( Part 2 )Machine learning ( Part 2 )
Machine learning ( Part 2 )
 
Machine learning ( Part 1 )
Machine learning ( Part 1 )Machine learning ( Part 1 )
Machine learning ( Part 1 )
 
Python Pandas
Python PandasPython Pandas
Python Pandas
 
Python part2 v1
Python part2 v1Python part2 v1
Python part2 v1
 
Angular 8
Angular 8 Angular 8
Angular 8
 
Python Part 1
Python Part 1Python Part 1
Python Part 1
 

Kürzlich hochgeladen

The Last Leaf, a short story by O. Henry
The Last Leaf, a short story by O. HenryThe Last Leaf, a short story by O. Henry
The Last Leaf, a short story by O. HenryEugene Lysak
 
IATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdffIATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdff17thcssbs2
 
Neurulation and the formation of the neural tube
Neurulation and the formation of the neural tubeNeurulation and the formation of the neural tube
Neurulation and the formation of the neural tubeSaadHumayun7
 
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17Celine George
 
Post Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdf
Post Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdfPost Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdf
Post Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdfPragya - UEM Kolkata Quiz Club
 
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文中 央社
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...Nguyen Thanh Tu Collection
 
Features of Video Calls in the Discuss Module in Odoo 17
Features of Video Calls in the Discuss Module in Odoo 17Features of Video Calls in the Discuss Module in Odoo 17
Features of Video Calls in the Discuss Module in Odoo 17Celine George
 
Essential Safety precautions during monsoon season
Essential Safety precautions during monsoon seasonEssential Safety precautions during monsoon season
Essential Safety precautions during monsoon seasonMayur Khatri
 
How to Manage Notification Preferences in the Odoo 17
How to Manage Notification Preferences in the Odoo 17How to Manage Notification Preferences in the Odoo 17
How to Manage Notification Preferences in the Odoo 17Celine George
 
Mbaye_Astou.Education Civica_Human Rights.pptx
Mbaye_Astou.Education Civica_Human Rights.pptxMbaye_Astou.Education Civica_Human Rights.pptx
Mbaye_Astou.Education Civica_Human Rights.pptxnuriaiuzzolino1
 
size separation d pharm 1st year pharmaceutics
size separation d pharm 1st year pharmaceuticssize separation d pharm 1st year pharmaceutics
size separation d pharm 1st year pharmaceuticspragatimahajan3
 
MichaelStarkes_UncutGemsProjectSummary.pdf
MichaelStarkes_UncutGemsProjectSummary.pdfMichaelStarkes_UncutGemsProjectSummary.pdf
MichaelStarkes_UncutGemsProjectSummary.pdfmstarkes24
 
Morse OER Some Benefits and Challenges.pptx
Morse OER Some Benefits and Challenges.pptxMorse OER Some Benefits and Challenges.pptx
Morse OER Some Benefits and Challenges.pptxjmorse8
 
Basic Civil Engineering notes on Transportation Engineering, Modes of Transpo...
Basic Civil Engineering notes on Transportation Engineering, Modes of Transpo...Basic Civil Engineering notes on Transportation Engineering, Modes of Transpo...
Basic Civil Engineering notes on Transportation Engineering, Modes of Transpo...Denish Jangid
 
philosophy and it's principles based on the life
philosophy and it's principles based on the lifephilosophy and it's principles based on the life
philosophy and it's principles based on the lifeNitinDeodare
 
ppt your views.ppt your views of your college in your eyes
ppt your views.ppt your views of your college in your eyesppt your views.ppt your views of your college in your eyes
ppt your views.ppt your views of your college in your eyesashishpaul799
 
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽中 央社
 
The Ultimate Guide to Social Media Marketing in 2024.pdf
The Ultimate Guide to Social Media Marketing in 2024.pdfThe Ultimate Guide to Social Media Marketing in 2024.pdf
The Ultimate Guide to Social Media Marketing in 2024.pdfdm4ashexcelr
 

Kürzlich hochgeladen (20)

The Last Leaf, a short story by O. Henry
The Last Leaf, a short story by O. HenryThe Last Leaf, a short story by O. Henry
The Last Leaf, a short story by O. Henry
 
IATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdffIATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdff
 
Neurulation and the formation of the neural tube
Neurulation and the formation of the neural tubeNeurulation and the formation of the neural tube
Neurulation and the formation of the neural tube
 
“O BEIJO” EM ARTE .
“O BEIJO” EM ARTE                       .“O BEIJO” EM ARTE                       .
“O BEIJO” EM ARTE .
 
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17
 
Post Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdf
Post Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdfPost Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdf
Post Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdf
 
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
 
Features of Video Calls in the Discuss Module in Odoo 17
Features of Video Calls in the Discuss Module in Odoo 17Features of Video Calls in the Discuss Module in Odoo 17
Features of Video Calls in the Discuss Module in Odoo 17
 
Essential Safety precautions during monsoon season
Essential Safety precautions during monsoon seasonEssential Safety precautions during monsoon season
Essential Safety precautions during monsoon season
 
How to Manage Notification Preferences in the Odoo 17
How to Manage Notification Preferences in the Odoo 17How to Manage Notification Preferences in the Odoo 17
How to Manage Notification Preferences in the Odoo 17
 
Mbaye_Astou.Education Civica_Human Rights.pptx
Mbaye_Astou.Education Civica_Human Rights.pptxMbaye_Astou.Education Civica_Human Rights.pptx
Mbaye_Astou.Education Civica_Human Rights.pptx
 
size separation d pharm 1st year pharmaceutics
size separation d pharm 1st year pharmaceuticssize separation d pharm 1st year pharmaceutics
size separation d pharm 1st year pharmaceutics
 
MichaelStarkes_UncutGemsProjectSummary.pdf
MichaelStarkes_UncutGemsProjectSummary.pdfMichaelStarkes_UncutGemsProjectSummary.pdf
MichaelStarkes_UncutGemsProjectSummary.pdf
 
Morse OER Some Benefits and Challenges.pptx
Morse OER Some Benefits and Challenges.pptxMorse OER Some Benefits and Challenges.pptx
Morse OER Some Benefits and Challenges.pptx
 
Basic Civil Engineering notes on Transportation Engineering, Modes of Transpo...
Basic Civil Engineering notes on Transportation Engineering, Modes of Transpo...Basic Civil Engineering notes on Transportation Engineering, Modes of Transpo...
Basic Civil Engineering notes on Transportation Engineering, Modes of Transpo...
 
philosophy and it's principles based on the life
philosophy and it's principles based on the lifephilosophy and it's principles based on the life
philosophy and it's principles based on the life
 
ppt your views.ppt your views of your college in your eyes
ppt your views.ppt your views of your college in your eyesppt your views.ppt your views of your college in your eyes
ppt your views.ppt your views of your college in your eyes
 
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
 
The Ultimate Guide to Social Media Marketing in 2024.pdf
The Ultimate Guide to Social Media Marketing in 2024.pdfThe Ultimate Guide to Social Media Marketing in 2024.pdf
The Ultimate Guide to Social Media Marketing in 2024.pdf
 

JAVA OOP

  • 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.14; 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 s2s1.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
  • 18. www.SunilOS.com 18 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 Packag e World private X protected X X X public X X X X
  • 19. www.SunilOS.com 19 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(); :Object UML Notation
  • 20. www.SunilOS.com 20 How Objects are Created Circle c = new Circle( ); Execution Time c Shape Circle Object 1.1.1.1. c Shape Circle Object 2.2.2.2. Object c 3.3.3.3. Shape Circle
  • 21. www.SunilOS.com 21 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()
  • 22. www.SunilOS.com 22 Parents Can Keep Child’s Reference Shape s = new Circle( ); Execution Time s Shape Circle Object 1.1.1.1. s Shape Circle Object 2.2.2.2. Object s 3.3.3.3. Shape Circle Accessible Window
  • 23. www.SunilOS.com 23 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();
  • 24. www.SunilOS.com 24 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.
  • 25. www.SunilOS.com 25 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
  • 26. www.SunilOS.com 26 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
  • 27. www.SunilOS.com 27 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.
  • 28. www.SunilOS.com 28 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(); }
  • 29. www.SunilOS.com 29 Method Overloading PrintWriter o println(String) o println(int) o println(double) o println(boolean) o println()
  • 30. www.SunilOS.com 30 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;
  • 31. www.SunilOS.com 31 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.
  • 32. www.SunilOS.com 32 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();
  • 33. www.SunilOS.com 33 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.
  • 34. www.SunilOS.com 34 Interfaces Richman earnMony() donation() party() Businessman name address earnMony() donation() party() Richman rm = new Businessman(); SocialWorker sw = new Businessman(); Businessman bm = new Businessman(); SocialWorker helpToOthers() Businessman name address earnMony() donation() party() helpToOthers() Businessman name address helpToOthers()
  • 35. www.SunilOS.com 35 interface Richman public interface Richman { o public void earnMoney(); o public void donation(); o public void party(); }
  • 36. www.SunilOS.com 36 interface SocialWorker public interface SocialWorker{ o public void helpToOthers(); }
  • 37. www.SunilOS.com 37 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");  }
  • 38. www.SunilOS.com 38 Interface It declares APIs. Specifications are defined as interfaces. o JDBC o Collection o EJB o JNI o etc.
  • 40. 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 40
  • 42. 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 42
  • 43. www.SunilOS.com 43 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");  }
  • 44. www.SunilOS.com 44 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");  }
  • 45. www.SunilOS.com 45 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");  }
  • 46. www.SunilOS.com 46 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");  }
  • 47. www.SunilOS.com 47 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");  }
  • 48. www.SunilOS.com 48 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");  }
  • 49. www.SunilOS.com 49 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");  }  …
  • 50. www.SunilOS.com 50 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 }  }
  • 51. www.SunilOS.com 51 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 }  }
  • 52. 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 52
  • 53. www.SunilOS.com 53 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
  • 54. 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 54