0% found this document useful (0 votes)
337 views16 pages

Week 4 OOP

This document provides information about an object-oriented programming course titled "Object Oriented Programming" with course code Comp2111 taught by Rabia Tariq. The course covers fundamental OOP concepts like objects, classes, inheritance, polymorphism, abstraction and encapsulation as well as other terms used in object-oriented design such as coupling, cohesion, association, aggregation and composition.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
337 views16 pages

Week 4 OOP

This document provides information about an object-oriented programming course titled "Object Oriented Programming" with course code Comp2111 taught by Rabia Tariq. The course covers fundamental OOP concepts like objects, classes, inheritance, polymorphism, abstraction and encapsulation as well as other terms used in object-oriented design such as coupling, cohesion, association, aggregation and composition.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Course Title: Object Oriented Programming

Course Code: Comp2111

Course Instructor: Rabia Tariq


[email protected]

Class: BSCS 3rd (M)

Institute: University of Education Lahore,


Multan Campus
Java OOPs Concepts
• Object-Oriented Programming is a paradigm that provides many concepts, such
as inheritance, data binding, polymorphism and abstraction, etc.
• Simula is considered the first object-oriented programming language.
• The programming paradigm where everything is represented as an object is
known as a truly object-oriented programming language.
• Smalltalk is considered the first truly object-oriented programming language.
• The popular object-oriented languages are:
• Java
• C#
• PHP
• Python
• C++
The main aim of object-oriented programming is to implement real-world entities, for
example, object, classes, abstraction, inheritance, polymorphism, etc.
OOPs (Object-Oriented Programming System):
• Object means a real-world entity such as a pen, chair, table, computer, watch, etc.
• Object-Oriented Programming is a methodology or paradigm to design a program using classes
and objects.
• It simplifies software development and maintenance by providing some concepts:
• Object
• Class
• Inheritance
• Polymorphism
• Abstraction
• Encapsulation
Apart from these concepts, there are some other terms which are used in Object-Oriented
design:
•Coupling
•Cohesion
•Association
•Aggregation
•Composition
Object
• Any entity that has state and behavior is known as an object. For example, a chair, pen, table, keyboard, bike,
etc.
• It can be physical(tangible) or logical(intangible).
• An Object can be defined as an instance of a class.
• An object contains an address and takes up some space in memory.

For Example:
1. Dog is an Object.
2. Dog state :Name, Color, Age
3. Dog Behavior: Bark, Sleep, Running, eat

State=Properties= characteristics =Data


Behavior=Method=Function

An object in software has data and related functions and methods.


Class:
• Collection of objects is called class.
• It is a logical entity.
• A class can also be defined as a blueprint from which you can create an individual object.
• Class doesn't consume any space.
Inheritance
• When one object acquires all the properties and behaviors of a parent object, it is known as
inheritance.
• It provides code reusability.
• It is used to achieve runtime polymorphism.

Vehicle

Car Truck Bus Motorcycle

• Wheels and motors(inherited) from vehicle


• Every subclass has its own characteristics also
• Bus has (seats for many people)
• Truck(heavy load hauling)
Polymorphism:
• it is an ability of an object to behave in multiple ways.
• In simple words, we can define polymorphism as the ability of a message to be displayed in
more than one form.
• Real life example of polymorphism is:
• Human can be > student, teacher, customer at a same time. It is called polymorphism.

Human

Student Techer
Customer

• In Java, we use method overloading and method overriding to achieve polymorphism.


Abstraction
• Hiding internal details and showing functionality is known as abstraction.
• For example phone call, we don't know the internal processing.
• In Java, we use abstract class and interface to achieve abstraction.
Encapsulation:

• Binding (or wrapping) code and data together into a single unit are known as encapsulation. For
example, a capsule, it is wrapped with different medicines.
• A java class is the example of encapsulation.
• Java bean is the fully encapsulated class because all the data members are private here.
Coupling:

• Coupling refers to the knowledge or information or dependency of another class.


• It arises when classes are aware of each other.
• If a class has the details information of another class, there is strong coupling.
• In Java, we use private, protected, and public modifiers to display the visibility level of a class,
method, and field.
• You can use interfaces for the weaker coupling because there is no concrete implementation .
Cohesion
• Cohesion refers to the level of a component which performs a single well-defined task.
• A single well-defined task is done by a highly cohesive method.
• The weakly cohesive method will split the task into separate parts.
• The java.io package is a highly cohesive package because it has I/O related classes and interface.
• However, the java.util package is a weakly cohesive package because it has unrelated classes and
interfaces.
Association
• Association represents the relationship between the objects.
• Here, one object can be associated with one object or many objects.
• There can be four types of association between the objects:
One to One
One to Many
Many to One, and
Many to Many

• Association can be undirectional or bidirectional.


Aggregation:
• Aggregation is a way to achieve Association.
• Aggregation represents the relationship where one object contains other objects as a part
of its state.
• It represents the weak relationship between objects.
• It is also termed as a has-a relationship in Java. Like, inheritance represents the is-
a relationship.
• It is another way to reuse objects.
Composition
• The composition is also a way to achieve Association.
• The composition represents the relationship where one object contains other objects as a
part of its state.
• There is a strong relationship between the containing object and the dependent object.
• It is the state where containing objects do not have an independent existence.
• If you delete the parent object, all the child objects will be deleted automatically.
Advantage of OOPs over Procedure-oriented programming
language
1) OOPs makes development and maintenance easier, whereas, in a
procedure-oriented programming language, it is not easy to manage if code
grows as project size increases.
2) OOPs provides data hiding, whereas, in a procedure-oriented programming
language, global data can be accessed from anywhere.
3) OOPs provides the ability to simulate real-world event much more
effectively. We can provide the solution of real word problem if we are using
the Object-Oriented Programming language.

You might also like