SlideShare ist ein Scribd-Unternehmen logo
1 von 53
CMP-2123-Object Oriented
Programming
Lecture 9
By
Abrar Ahmad
Abrar.ahmad14@ce.ceme.edu.pk
Java – Abstraction
Badar Waseer arbabwaseergmail.com 2
• As per dictionary, abstraction is the quality of dealing with ideas
rather than events. For example, when you consider the case of e-
mail, complex details such as what happens as soon as you send an e-
mail, the protocol your e-mail server uses are hidden from the user.
Therefore, to send an e-mail you just need to type the content,
mention the address of the receiver, and click send.
Badar Waseer arbabwaseergmail.com 3
• Likewise in Object-oriented programming, abstraction is a process of
hiding the implementation details from the user, only the
functionality will be provided to the user. In other words, the user will
have the information on what the object does instead of how it does
it.
• In Java, abstraction is achieved using Abstract classes and interfaces.
Badar Waseer arbabwaseergmail.com 4
Abstract Class
• A class which contains the abstract keyword in its declaration is
known as abstract class.
• Abstract classes may or may not contain abstract methods, i.e., methods
without body ( public void get(); )
• But, if a class has at least one abstract method, then the class must be
declared abstract.
• If a class is declared abstract, it cannot be instantiated.
• To use an abstract class, you have to inherit it from another class, provide
implementations to the abstract methods in it.
• If you inherit an abstract class, you have to provide implementations to all the
abstract methods in it.
Badar Waseer arbabwaseergmail.com 5
• To create an abstract class, just use the abstract keyword before the
class keyword, in the class declaration.
Badar Waseer arbabwaseergmail.com 6
Badar Waseer arbabwaseergmail.com 7
• You can observe that except abstract methods the Employee class is
same as normal class in Java. The class is now abstract, but it still has
three fields, seven methods, and one constructor.
• Now you can try to instantiate the Employee class in the following
way
Badar Waseer arbabwaseergmail.com 8
Badar Waseer arbabwaseergmail.com 9
• When you compile the above class, it gives you the following error −
Badar Waseer arbabwaseergmail.com 10
Inheriting the Abstract Class
• We can inherit the properties of Employee class just like concrete
class in the following way
Badar Waseer arbabwaseergmail.com 11
Badar Waseer arbabwaseergmail.com 12
• Here, you cannot instantiate the Employee class, but you can
instantiate the Salary Class, and using this instance you can access all
the three fields and seven methods of Employee class as shown
below.
Badar Waseer arbabwaseergmail.com 13
Badar Waseer arbabwaseergmail.com 14
Badar Waseer arbabwaseergmail.com 15
Abstract Methods
• If you want a class to contain a particular method but you want the
actual implementation of that method to be determined by child
classes, you can declare the method in the parent class as an abstract.
• abstract keyword is used to declare the method as abstract.
• You have to place the abstract keyword before the method name in the
method declaration.
• An abstract method contains a method signature, but no method body.
• Instead of curly braces, an abstract method will have a semoi colon (;) at the
end.
Badar Waseer arbabwaseergmail.com 16
Badar Waseer arbabwaseergmail.com 17
• Declaring a method as abstract has two consequences −
• The class containing it must be declared as abstract.
• Any class inheriting the current class must either override the abstract
method or declare itself as abstract.
• Note − Eventually, a descendant class has to implement the abstract
method; otherwise, you would have a hierarchy of abstract classes
that cannot be instantiated.
• Suppose Salary class inherits the Employee class, then it should
implement the computePay() method as shown below −
Badar Waseer arbabwaseergmail.com 18
Badar Waseer arbabwaseergmail.com 19
Java - Encapsulation
Badar Waseer arbabwaseergmail.com 20
• Encapsulation is one of the four fundamental OOP concepts. The
other three are inheritance, polymorphism, and abstraction.
• Encapsulation in Java is a mechanism of wrapping the data (variables)
and code acting on the data (methods) together as a single unit. In
encapsulation, the variables of a class will be hidden from other
classes, and can be accessed only through the methods of their
current class. Therefore, it is also known as data hiding.
Badar Waseer arbabwaseergmail.com 21
• To achieve encapsulation in Java −
• Declare the variables of a class as private.
• Provide public setter and getter methods to modify and view the variables
values.
• Following is an example that demonstrates how to achieve
Encapsulation in Java
Badar Waseer arbabwaseergmail.com 22
Badar Waseer arbabwaseergmail.com 23
• The public setXXX() and getXXX() methods are the access points of
the instance variables of the EncapTest class. Normally, these
methods are referred as getters and setters. Therefore, any class that
wants to access the variables should access them through these
getters and setters
• The variables of the EncapTest class can be accessed using the
following program
Badar Waseer arbabwaseergmail.com 24
Badar Waseer arbabwaseergmail.com 25
• This will produce the following result −
Badar Waseer arbabwaseergmail.com 26
Name : James Age : 20
Badar Waseer arbabwaseergmail.com 27
Benefits of Encapsulation
• The fields of a class can be made read-only or write-only.
• A class can have total control over what is stored in its fields.
• The users of a class do not know how the class stores its data. A class
can change the data type of a field and users of the class do not need
to change any of their code.
Badar Waseer arbabwaseergmail.com 28
Java - Interfaces
Badar Waseer arbabwaseergmail.com 29
• An interface is a reference type in Java. It is similar to class. It is a
collection of abstract methods. A class implements an interface,
thereby inheriting the abstract methods of the interface.
• Along with abstract methods, an interface may also contain constants,
default methods, static methods, and nested types. Method bodies
exist only for default methods and static methods.
Badar Waseer arbabwaseergmail.com 30
• Writing an interface is similar to writing a class. But a class describes
the attributes and behaviors of an object. And an interface contains
behaviors that a class implements.
• Unless the class that implements the interface is abstract, all the
methods of the interface need to be defined in the class.
Badar Waseer arbabwaseergmail.com 31
• An interface is similar to a class in the following ways −
• An interface can contain any number of methods.
• An interface is written in a file with a .java extension, with the name of the
interface matching the name of the file.
• The byte code of an interface appears in a .class file.
• Interfaces appear in packages, and their corresponding bytecode file must be
in a directory structure that matches the package name.
Badar Waseer arbabwaseergmail.com 32
• However, an interface is different from a class in several ways,
including −
• You cannot instantiate an interface.
• An interface does not contain any constructors.
• All of the methods in an interface are abstract.
• An interface cannot contain instance fields. The only fields that can appear in
an interface must be declared both static and final.
• An interface is not extended by a class; it is implemented by a class.
• An interface can extend multiple interfaces.
Badar Waseer arbabwaseergmail.com 33
Declaring Interfaces
• The interface keyword is used to declare an interface. Here is a simple
example to declare an interface −
• Following is an example of an interface −
Badar Waseer arbabwaseergmail.com 34
Badar Waseer arbabwaseergmail.com 35
• Interfaces have the following properties −
• An interface is implicitly abstract. You do not need to use
the abstract keyword while declaring an interface.
• Each method in an interface is also implicitly abstract, so the abstract keyword
is not needed.
• Methods in an interface are implicitly public.
Badar Waseer arbabwaseergmail.com 36
Badar Waseer arbabwaseergmail.com 37
Implementing Interfaces
• When a class implements an interface, you can think of the class as
signing a contract, agreeing to perform the specific behaviors of the
interface. If a class does not perform all the behaviors of the
interface, the class must declare itself as abstract.
• A class uses the implements keyword to implement an interface. The
implements keyword appears in the class declaration following the
extends portion of the declaration.
Badar Waseer arbabwaseergmail.com 38
Badar Waseer arbabwaseergmail.com 39
Badar Waseer arbabwaseergmail.com 40
• When overriding methods defined in interfaces, there are several
rules to be followed −
• Checked exceptions should not be declared on implementation methods
other than the ones declared by the interface method or subclasses of those
declared by the interface method.
• The signature of the interface method and the same return type or subtype
should be maintained when overriding the methods.
• An implementation class itself can be abstract and if so, interface methods
need not be implemented.
Badar Waseer arbabwaseergmail.com 41
• When implementation interfaces, there are several rules −
• A class can implement more than one interface at a time.
• A class can extend only one class, but implement many interfaces.
• An interface can extend another interface, in a similar way as a class can
extend another class.
Badar Waseer arbabwaseergmail.com 42
Extending Interfaces
• An interface can extend another interface in the same way that a
class can extend another class. The extends keyword is used to
extend an interface, and the child interface inherits the methods of
the parent interface.
• The following Sports interface is extended by Hockey and Football
interfaces.
Badar Waseer arbabwaseergmail.com 43
Badar Waseer arbabwaseergmail.com 44
• The Hockey interface has four methods, but it inherits two from
Sports; thus, a class that implements Hockey needs to implement all
six methods. Similarly, a class that implements Football needs to
define the three methods from Football and the two methods from
Sports.
Badar Waseer arbabwaseergmail.com 45
Extending Multiple Interfaces
• A Java class can only extend one parent class. Multiple inheritance is
not allowed. Interfaces are not classes, however, and an interface can
extend more than one parent interface.
• The extends keyword is used once, and the parent interfaces are
declared in a comma-separated list.
Badar Waseer arbabwaseergmail.com 46
• For example, if the Hockey interface extended both Sports and Event,
it would be declared as
Badar Waseer arbabwaseergmail.com 47
Tagging Interfaces
• The most common use of extending interfaces occurs when the
parent interface does not contain any methods. For example, the
MouseListener interface in the java.awt.event package extended
java.util.EventListener, which is defined as −
Badar Waseer arbabwaseergmail.com 48
Badar Waseer arbabwaseergmail.com 49
• An interface with no methods in it is referred to as
a tagging interface. There are two basic design purposes of tagging
interfaces −
• Creates a common parent − As with the EventListener interface,
which is extended by dozens of other interfaces in the Java API, you
can use a tagging interface to create a common parent among a
group of interfaces. For example, when an interface extends
EventListener, the JVM knows that this particular interface is going to
be used in an event delegation scenario.
Badar Waseer arbabwaseergmail.com 50
• Adds a data type to a class − This situation is where the term, tagging
comes from. A class that implements a tagging interface does not
need to define any methods (since the interface does not have any),
but the class becomes an interface type through polymorphism.
Badar Waseer arbabwaseergmail.com 51
Any Questions ?
Badar Waseer arbabwaseergmail.com 52
Thank You
Badar Waseer arbabwaseergmail.com 53

Weitere ähnliche Inhalte

Was ist angesagt?

Bt0074, oops with java
Bt0074, oops with javaBt0074, oops with java
Bt0074, oops with javasmumbahelp
 
(An Extended) Beginners Guide to Object Orientation in PHP
(An Extended) Beginners Guide to Object Orientation in PHP(An Extended) Beginners Guide to Object Orientation in PHP
(An Extended) Beginners Guide to Object Orientation in PHPRick Ogden
 
Ch. 3 classes and objects
Ch. 3 classes and objectsCh. 3 classes and objects
Ch. 3 classes and objectsdkohreidze
 
Java Basics Presentation
Java Basics PresentationJava Basics Presentation
Java Basics PresentationOmid Sohrabi
 
Java component
Java componentJava component
Java componentkrishashi
 
Scope demystified - AngularJS
Scope demystified - AngularJSScope demystified - AngularJS
Scope demystified - AngularJSSumanth krishna
 

Was ist angesagt? (11)

Java- language Lecture 6
Java- language Lecture 6Java- language Lecture 6
Java- language Lecture 6
 
Chap6java5th
Chap6java5thChap6java5th
Chap6java5th
 
Bt0074, oops with java
Bt0074, oops with javaBt0074, oops with java
Bt0074, oops with java
 
Driver
DriverDriver
Driver
 
Chapter8
Chapter8Chapter8
Chapter8
 
(An Extended) Beginners Guide to Object Orientation in PHP
(An Extended) Beginners Guide to Object Orientation in PHP(An Extended) Beginners Guide to Object Orientation in PHP
(An Extended) Beginners Guide to Object Orientation in PHP
 
Ch. 3 classes and objects
Ch. 3 classes and objectsCh. 3 classes and objects
Ch. 3 classes and objects
 
Akka - A Brief Intro
Akka - A Brief IntroAkka - A Brief Intro
Akka - A Brief Intro
 
Java Basics Presentation
Java Basics PresentationJava Basics Presentation
Java Basics Presentation
 
Java component
Java componentJava component
Java component
 
Scope demystified - AngularJS
Scope demystified - AngularJSScope demystified - AngularJS
Scope demystified - AngularJS
 

Ähnlich wie Lec 1.9 oop

Object Oriented Programming C#
Object Oriented Programming C#Object Oriented Programming C#
Object Oriented Programming C#Muhammad Younis
 
chapter 5 concepts of object oriented programming
chapter 5 concepts of object oriented programmingchapter 5 concepts of object oriented programming
chapter 5 concepts of object oriented programmingWondimuBantihun1
 
Abstraction in java.pptx
Abstraction in java.pptxAbstraction in java.pptx
Abstraction in java.pptxAsifMulani17
 
Custom Controllers and Controller Extensions
Custom Controllers and Controller Extensions Custom Controllers and Controller Extensions
Custom Controllers and Controller Extensions Mohammed Safwat Abu Kwaik
 
OCP Java (OCPJP) 8 Exam Quick Reference Card
OCP Java (OCPJP) 8 Exam Quick Reference CardOCP Java (OCPJP) 8 Exam Quick Reference Card
OCP Java (OCPJP) 8 Exam Quick Reference CardHari kiran G
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented ProgrammingRatnaJava
 
FRONTEND BOOTCAMP Session 2.pptx
FRONTEND BOOTCAMP Session 2.pptxFRONTEND BOOTCAMP Session 2.pptx
FRONTEND BOOTCAMP Session 2.pptxEhtesham46
 
Episode 3 – Classes, Inheritance, Abstract Class, and Interfaces
Episode 3 – Classes, Inheritance, Abstract Class, and InterfacesEpisode 3 – Classes, Inheritance, Abstract Class, and Interfaces
Episode 3 – Classes, Inheritance, Abstract Class, and InterfacesJitendra Zaa
 
0_A1590026209_21789_20_2018_0 Lecture.ppt
0_A1590026209_21789_20_2018_0 Lecture.ppt0_A1590026209_21789_20_2018_0 Lecture.ppt
0_A1590026209_21789_20_2018_0 Lecture.pptRithwikRanjan
 
Abstract Class In Java | Java Abstract Class Tutorial | Java Tutorial For Beg...
Abstract Class In Java | Java Abstract Class Tutorial | Java Tutorial For Beg...Abstract Class In Java | Java Abstract Class Tutorial | Java Tutorial For Beg...
Abstract Class In Java | Java Abstract Class Tutorial | Java Tutorial For Beg...Simplilearn
 
Writing Clean Code (Recommendations by Robert Martin)
Writing Clean Code (Recommendations by Robert Martin)Writing Clean Code (Recommendations by Robert Martin)
Writing Clean Code (Recommendations by Robert Martin)Shirish Bari
 
Concurrency Programming in Java - 02 - Essentials of Java Part 1
Concurrency Programming in Java - 02 - Essentials of Java Part 1Concurrency Programming in Java - 02 - Essentials of Java Part 1
Concurrency Programming in Java - 02 - Essentials of Java Part 1Sachintha Gunasena
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to javaAjay Sharma
 
Top 100 Java Interview Questions with Detailed Answers
Top 100 Java Interview Questions with Detailed AnswersTop 100 Java Interview Questions with Detailed Answers
Top 100 Java Interview Questions with Detailed AnswersWhizlabs
 

Ähnlich wie Lec 1.9 oop (20)

Object Oriented Programming C#
Object Oriented Programming C#Object Oriented Programming C#
Object Oriented Programming C#
 
chapter 5 concepts of object oriented programming
chapter 5 concepts of object oriented programmingchapter 5 concepts of object oriented programming
chapter 5 concepts of object oriented programming
 
Abstraction in java.pptx
Abstraction in java.pptxAbstraction in java.pptx
Abstraction in java.pptx
 
Custom Controllers and Controller Extensions
Custom Controllers and Controller Extensions Custom Controllers and Controller Extensions
Custom Controllers and Controller Extensions
 
Chap02
Chap02Chap02
Chap02
 
31 days Refactoring
31 days Refactoring31 days Refactoring
31 days Refactoring
 
OOPSCA1.pptx
OOPSCA1.pptxOOPSCA1.pptx
OOPSCA1.pptx
 
OCP Java (OCPJP) 8 Exam Quick Reference Card
OCP Java (OCPJP) 8 Exam Quick Reference CardOCP Java (OCPJP) 8 Exam Quick Reference Card
OCP Java (OCPJP) 8 Exam Quick Reference Card
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 
Unit 4
Unit 4Unit 4
Unit 4
 
FRONTEND BOOTCAMP Session 2.pptx
FRONTEND BOOTCAMP Session 2.pptxFRONTEND BOOTCAMP Session 2.pptx
FRONTEND BOOTCAMP Session 2.pptx
 
Java scjp-part1
Java scjp-part1Java scjp-part1
Java scjp-part1
 
Java
JavaJava
Java
 
Episode 3 – Classes, Inheritance, Abstract Class, and Interfaces
Episode 3 – Classes, Inheritance, Abstract Class, and InterfacesEpisode 3 – Classes, Inheritance, Abstract Class, and Interfaces
Episode 3 – Classes, Inheritance, Abstract Class, and Interfaces
 
0_A1590026209_21789_20_2018_0 Lecture.ppt
0_A1590026209_21789_20_2018_0 Lecture.ppt0_A1590026209_21789_20_2018_0 Lecture.ppt
0_A1590026209_21789_20_2018_0 Lecture.ppt
 
Abstract Class In Java | Java Abstract Class Tutorial | Java Tutorial For Beg...
Abstract Class In Java | Java Abstract Class Tutorial | Java Tutorial For Beg...Abstract Class In Java | Java Abstract Class Tutorial | Java Tutorial For Beg...
Abstract Class In Java | Java Abstract Class Tutorial | Java Tutorial For Beg...
 
Writing Clean Code (Recommendations by Robert Martin)
Writing Clean Code (Recommendations by Robert Martin)Writing Clean Code (Recommendations by Robert Martin)
Writing Clean Code (Recommendations by Robert Martin)
 
Concurrency Programming in Java - 02 - Essentials of Java Part 1
Concurrency Programming in Java - 02 - Essentials of Java Part 1Concurrency Programming in Java - 02 - Essentials of Java Part 1
Concurrency Programming in Java - 02 - Essentials of Java Part 1
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
Top 100 Java Interview Questions with Detailed Answers
Top 100 Java Interview Questions with Detailed AnswersTop 100 Java Interview Questions with Detailed Answers
Top 100 Java Interview Questions with Detailed Answers
 

Mehr von Badar Waseer

Ch 03 s.e agile development
Ch 03 s.e agile developmentCh 03 s.e agile development
Ch 03 s.e agile developmentBadar Waseer
 
Ch 02 s.e software process models 1
Ch 02 s.e software process models   1Ch 02 s.e software process models   1
Ch 02 s.e software process models 1Badar Waseer
 
Ch 01 s.e introduction
Ch 01 s.e introductionCh 01 s.e introduction
Ch 01 s.e introductionBadar Waseer
 
Ch 14 s.e use case diagrams
Ch 14 s.e use case diagramsCh 14 s.e use case diagrams
Ch 14 s.e use case diagramsBadar Waseer
 
Lec 1.1 Object Oriented Programming
Lec 1.1 Object Oriented ProgrammingLec 1.1 Object Oriented Programming
Lec 1.1 Object Oriented ProgrammingBadar Waseer
 
Lec 1.10 Object Oriented Programming
Lec 1.10 Object Oriented ProgrammingLec 1.10 Object Oriented Programming
Lec 1.10 Object Oriented ProgrammingBadar Waseer
 
Multimedia System & Design Ch 7 multimedia skills
Multimedia System & Design Ch 7 multimedia skillsMultimedia System & Design Ch 7 multimedia skills
Multimedia System & Design Ch 7 multimedia skillsBadar Waseer
 
Multimedia System & Design Ch 6 animation
Multimedia System & Design Ch 6 animationMultimedia System & Design Ch 6 animation
Multimedia System & Design Ch 6 animationBadar Waseer
 
Multimedia System & Design Ch 5 video
Multimedia System & Design Ch 5 videoMultimedia System & Design Ch 5 video
Multimedia System & Design Ch 5 videoBadar Waseer
 
Multimedia System & Design Ch 4 Audio
Multimedia System & Design Ch 4 AudioMultimedia System & Design Ch 4 Audio
Multimedia System & Design Ch 4 AudioBadar Waseer
 
Multimedia System & Design Ch 1, 2, 3 Multimedia
Multimedia System & Design Ch 1, 2, 3 MultimediaMultimedia System & Design Ch 1, 2, 3 Multimedia
Multimedia System & Design Ch 1, 2, 3 MultimediaBadar Waseer
 
Multimedia System & Design Ch 8 delivering
Multimedia System & Design Ch 8 deliveringMultimedia System & Design Ch 8 delivering
Multimedia System & Design Ch 8 deliveringBadar Waseer
 
Agriculture Information System (AIS)
Agriculture Information System (AIS)Agriculture Information System (AIS)
Agriculture Information System (AIS)Badar Waseer
 
Output Devices UoS Fsd
Output Devices UoS FsdOutput Devices UoS Fsd
Output Devices UoS FsdBadar Waseer
 

Mehr von Badar Waseer (15)

Ch 03 s.e agile development
Ch 03 s.e agile developmentCh 03 s.e agile development
Ch 03 s.e agile development
 
Ch 02 s.e software process models 1
Ch 02 s.e software process models   1Ch 02 s.e software process models   1
Ch 02 s.e software process models 1
 
Ch 01 s.e introduction
Ch 01 s.e introductionCh 01 s.e introduction
Ch 01 s.e introduction
 
Ch 14 s.e use case diagrams
Ch 14 s.e use case diagramsCh 14 s.e use case diagrams
Ch 14 s.e use case diagrams
 
Ch 13 s.e cmmi
Ch 13 s.e cmmiCh 13 s.e cmmi
Ch 13 s.e cmmi
 
Lec 1.1 Object Oriented Programming
Lec 1.1 Object Oriented ProgrammingLec 1.1 Object Oriented Programming
Lec 1.1 Object Oriented Programming
 
Lec 1.10 Object Oriented Programming
Lec 1.10 Object Oriented ProgrammingLec 1.10 Object Oriented Programming
Lec 1.10 Object Oriented Programming
 
Multimedia System & Design Ch 7 multimedia skills
Multimedia System & Design Ch 7 multimedia skillsMultimedia System & Design Ch 7 multimedia skills
Multimedia System & Design Ch 7 multimedia skills
 
Multimedia System & Design Ch 6 animation
Multimedia System & Design Ch 6 animationMultimedia System & Design Ch 6 animation
Multimedia System & Design Ch 6 animation
 
Multimedia System & Design Ch 5 video
Multimedia System & Design Ch 5 videoMultimedia System & Design Ch 5 video
Multimedia System & Design Ch 5 video
 
Multimedia System & Design Ch 4 Audio
Multimedia System & Design Ch 4 AudioMultimedia System & Design Ch 4 Audio
Multimedia System & Design Ch 4 Audio
 
Multimedia System & Design Ch 1, 2, 3 Multimedia
Multimedia System & Design Ch 1, 2, 3 MultimediaMultimedia System & Design Ch 1, 2, 3 Multimedia
Multimedia System & Design Ch 1, 2, 3 Multimedia
 
Multimedia System & Design Ch 8 delivering
Multimedia System & Design Ch 8 deliveringMultimedia System & Design Ch 8 delivering
Multimedia System & Design Ch 8 delivering
 
Agriculture Information System (AIS)
Agriculture Information System (AIS)Agriculture Information System (AIS)
Agriculture Information System (AIS)
 
Output Devices UoS Fsd
Output Devices UoS FsdOutput Devices UoS Fsd
Output Devices UoS Fsd
 

Kürzlich hochgeladen

This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfNirmal Dwivedi
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the ClassroomPooky Knightsmith
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17Celine George
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024Elizabeth Walsh
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibitjbellavia9
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptxMaritesTamaniVerdade
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...pradhanghanshyam7136
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxJisc
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxcallscotland1987
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseAnaAcapella
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 

Kürzlich hochgeladen (20)

This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 

Lec 1.9 oop

  • 1. CMP-2123-Object Oriented Programming Lecture 9 By Abrar Ahmad Abrar.ahmad14@ce.ceme.edu.pk
  • 2. Java – Abstraction Badar Waseer arbabwaseergmail.com 2
  • 3. • As per dictionary, abstraction is the quality of dealing with ideas rather than events. For example, when you consider the case of e- mail, complex details such as what happens as soon as you send an e- mail, the protocol your e-mail server uses are hidden from the user. Therefore, to send an e-mail you just need to type the content, mention the address of the receiver, and click send. Badar Waseer arbabwaseergmail.com 3
  • 4. • Likewise in Object-oriented programming, abstraction is a process of hiding the implementation details from the user, only the functionality will be provided to the user. In other words, the user will have the information on what the object does instead of how it does it. • In Java, abstraction is achieved using Abstract classes and interfaces. Badar Waseer arbabwaseergmail.com 4
  • 5. Abstract Class • A class which contains the abstract keyword in its declaration is known as abstract class. • Abstract classes may or may not contain abstract methods, i.e., methods without body ( public void get(); ) • But, if a class has at least one abstract method, then the class must be declared abstract. • If a class is declared abstract, it cannot be instantiated. • To use an abstract class, you have to inherit it from another class, provide implementations to the abstract methods in it. • If you inherit an abstract class, you have to provide implementations to all the abstract methods in it. Badar Waseer arbabwaseergmail.com 5
  • 6. • To create an abstract class, just use the abstract keyword before the class keyword, in the class declaration. Badar Waseer arbabwaseergmail.com 6
  • 8. • You can observe that except abstract methods the Employee class is same as normal class in Java. The class is now abstract, but it still has three fields, seven methods, and one constructor. • Now you can try to instantiate the Employee class in the following way Badar Waseer arbabwaseergmail.com 8
  • 10. • When you compile the above class, it gives you the following error − Badar Waseer arbabwaseergmail.com 10
  • 11. Inheriting the Abstract Class • We can inherit the properties of Employee class just like concrete class in the following way Badar Waseer arbabwaseergmail.com 11
  • 13. • Here, you cannot instantiate the Employee class, but you can instantiate the Salary Class, and using this instance you can access all the three fields and seven methods of Employee class as shown below. Badar Waseer arbabwaseergmail.com 13
  • 16. Abstract Methods • If you want a class to contain a particular method but you want the actual implementation of that method to be determined by child classes, you can declare the method in the parent class as an abstract. • abstract keyword is used to declare the method as abstract. • You have to place the abstract keyword before the method name in the method declaration. • An abstract method contains a method signature, but no method body. • Instead of curly braces, an abstract method will have a semoi colon (;) at the end. Badar Waseer arbabwaseergmail.com 16
  • 18. • Declaring a method as abstract has two consequences − • The class containing it must be declared as abstract. • Any class inheriting the current class must either override the abstract method or declare itself as abstract. • Note − Eventually, a descendant class has to implement the abstract method; otherwise, you would have a hierarchy of abstract classes that cannot be instantiated. • Suppose Salary class inherits the Employee class, then it should implement the computePay() method as shown below − Badar Waseer arbabwaseergmail.com 18
  • 20. Java - Encapsulation Badar Waseer arbabwaseergmail.com 20
  • 21. • Encapsulation is one of the four fundamental OOP concepts. The other three are inheritance, polymorphism, and abstraction. • Encapsulation in Java is a mechanism of wrapping the data (variables) and code acting on the data (methods) together as a single unit. In encapsulation, the variables of a class will be hidden from other classes, and can be accessed only through the methods of their current class. Therefore, it is also known as data hiding. Badar Waseer arbabwaseergmail.com 21
  • 22. • To achieve encapsulation in Java − • Declare the variables of a class as private. • Provide public setter and getter methods to modify and view the variables values. • Following is an example that demonstrates how to achieve Encapsulation in Java Badar Waseer arbabwaseergmail.com 22
  • 24. • The public setXXX() and getXXX() methods are the access points of the instance variables of the EncapTest class. Normally, these methods are referred as getters and setters. Therefore, any class that wants to access the variables should access them through these getters and setters • The variables of the EncapTest class can be accessed using the following program Badar Waseer arbabwaseergmail.com 24
  • 26. • This will produce the following result − Badar Waseer arbabwaseergmail.com 26
  • 27. Name : James Age : 20 Badar Waseer arbabwaseergmail.com 27
  • 28. Benefits of Encapsulation • The fields of a class can be made read-only or write-only. • A class can have total control over what is stored in its fields. • The users of a class do not know how the class stores its data. A class can change the data type of a field and users of the class do not need to change any of their code. Badar Waseer arbabwaseergmail.com 28
  • 29. Java - Interfaces Badar Waseer arbabwaseergmail.com 29
  • 30. • An interface is a reference type in Java. It is similar to class. It is a collection of abstract methods. A class implements an interface, thereby inheriting the abstract methods of the interface. • Along with abstract methods, an interface may also contain constants, default methods, static methods, and nested types. Method bodies exist only for default methods and static methods. Badar Waseer arbabwaseergmail.com 30
  • 31. • Writing an interface is similar to writing a class. But a class describes the attributes and behaviors of an object. And an interface contains behaviors that a class implements. • Unless the class that implements the interface is abstract, all the methods of the interface need to be defined in the class. Badar Waseer arbabwaseergmail.com 31
  • 32. • An interface is similar to a class in the following ways − • An interface can contain any number of methods. • An interface is written in a file with a .java extension, with the name of the interface matching the name of the file. • The byte code of an interface appears in a .class file. • Interfaces appear in packages, and their corresponding bytecode file must be in a directory structure that matches the package name. Badar Waseer arbabwaseergmail.com 32
  • 33. • However, an interface is different from a class in several ways, including − • You cannot instantiate an interface. • An interface does not contain any constructors. • All of the methods in an interface are abstract. • An interface cannot contain instance fields. The only fields that can appear in an interface must be declared both static and final. • An interface is not extended by a class; it is implemented by a class. • An interface can extend multiple interfaces. Badar Waseer arbabwaseergmail.com 33
  • 34. Declaring Interfaces • The interface keyword is used to declare an interface. Here is a simple example to declare an interface − • Following is an example of an interface − Badar Waseer arbabwaseergmail.com 34
  • 36. • Interfaces have the following properties − • An interface is implicitly abstract. You do not need to use the abstract keyword while declaring an interface. • Each method in an interface is also implicitly abstract, so the abstract keyword is not needed. • Methods in an interface are implicitly public. Badar Waseer arbabwaseergmail.com 36
  • 38. Implementing Interfaces • When a class implements an interface, you can think of the class as signing a contract, agreeing to perform the specific behaviors of the interface. If a class does not perform all the behaviors of the interface, the class must declare itself as abstract. • A class uses the implements keyword to implement an interface. The implements keyword appears in the class declaration following the extends portion of the declaration. Badar Waseer arbabwaseergmail.com 38
  • 41. • When overriding methods defined in interfaces, there are several rules to be followed − • Checked exceptions should not be declared on implementation methods other than the ones declared by the interface method or subclasses of those declared by the interface method. • The signature of the interface method and the same return type or subtype should be maintained when overriding the methods. • An implementation class itself can be abstract and if so, interface methods need not be implemented. Badar Waseer arbabwaseergmail.com 41
  • 42. • When implementation interfaces, there are several rules − • A class can implement more than one interface at a time. • A class can extend only one class, but implement many interfaces. • An interface can extend another interface, in a similar way as a class can extend another class. Badar Waseer arbabwaseergmail.com 42
  • 43. Extending Interfaces • An interface can extend another interface in the same way that a class can extend another class. The extends keyword is used to extend an interface, and the child interface inherits the methods of the parent interface. • The following Sports interface is extended by Hockey and Football interfaces. Badar Waseer arbabwaseergmail.com 43
  • 45. • The Hockey interface has four methods, but it inherits two from Sports; thus, a class that implements Hockey needs to implement all six methods. Similarly, a class that implements Football needs to define the three methods from Football and the two methods from Sports. Badar Waseer arbabwaseergmail.com 45
  • 46. Extending Multiple Interfaces • A Java class can only extend one parent class. Multiple inheritance is not allowed. Interfaces are not classes, however, and an interface can extend more than one parent interface. • The extends keyword is used once, and the parent interfaces are declared in a comma-separated list. Badar Waseer arbabwaseergmail.com 46
  • 47. • For example, if the Hockey interface extended both Sports and Event, it would be declared as Badar Waseer arbabwaseergmail.com 47
  • 48. Tagging Interfaces • The most common use of extending interfaces occurs when the parent interface does not contain any methods. For example, the MouseListener interface in the java.awt.event package extended java.util.EventListener, which is defined as − Badar Waseer arbabwaseergmail.com 48
  • 50. • An interface with no methods in it is referred to as a tagging interface. There are two basic design purposes of tagging interfaces − • Creates a common parent − As with the EventListener interface, which is extended by dozens of other interfaces in the Java API, you can use a tagging interface to create a common parent among a group of interfaces. For example, when an interface extends EventListener, the JVM knows that this particular interface is going to be used in an event delegation scenario. Badar Waseer arbabwaseergmail.com 50
  • 51. • Adds a data type to a class − This situation is where the term, tagging comes from. A class that implements a tagging interface does not need to define any methods (since the interface does not have any), but the class becomes an interface type through polymorphism. Badar Waseer arbabwaseergmail.com 51
  • 52. Any Questions ? Badar Waseer arbabwaseergmail.com 52
  • 53. Thank You Badar Waseer arbabwaseergmail.com 53