Characteristics (Concepts) of Object Oriented Programming (OOP) Notes | Basic Computer Engineering | RGPV BTech First Year

Characteristics (Concepts) of Object Oriented Programming (OOP) Notes | Basic Computer Engineering | RGPV BTech First Year


Characteristics (Concepts) of Object Oriented Programming (OOP)

Object Oriented Programming (OOP) рдЖрдзреБрдирд┐рдХ Software Development рдХреА рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп Programming Methodology рд╣реИред Procedural Programming рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП OOP рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЗрд╕рдореЗрдВ Program рдХреЛ Functions рдХреА рдмрдЬрд╛рдп Objects рддрдерд╛ Classes рдХреЗ рд░реВрдк рдореЗрдВ Design рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред OOP рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп Real World Entities рдХреЛ Software рдореЗрдВ рдЙрд╕реА рдкреНрд░рдХрд╛рд░ Represent рдХрд░рдирд╛ рд╣реИ рдЬреИрд╕реЗ рд╡реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ рд╣реЛрддреА рд╣реИрдВред

рдЖрдЬ рд▓рдЧрднрдЧ рд╕рднреА рдмрдбрд╝реЗ Software Systems, Banking Applications, ERP Software, Android Applications, Enterprise Applications, Cloud Platforms рддрдерд╛ Game Development рдореЗрдВ Object Oriented Programming рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


Introduction

Object Oriented Programming рдПрдХ рдРрд╕рд╛ Programming Paradigm рд╣реИ рдЬрд┐рд╕рдореЗрдВ Data рддрдерд╛ Functions рдХреЛ рдПрдХ рд╕рд╛рде Objects рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧрдард┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ Object рдЕрдкрдиреА Properties (Data Members) рддрдерд╛ Behaviors (Member Functions) рд░рдЦрддрд╛ рд╣реИред

OOP Code Reusability, Security, Maintainability рддрдерд╛ Scalability рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЖрдзреБрдирд┐рдХ Programming Languages рдЬреИрд╕реЗ C++, Java, Python, C#, Kotlin рдЖрджрд┐ Object Oriented Programming рдХреЛ Support рдХрд░рддреА рд╣реИрдВред


Definition of OOP

Object Oriented Programming рдРрд╕реА Programming Methodology рд╣реИ рдЬрд┐рд╕рдореЗрдВ Program рдХреЛ Objects рдПрд╡рдВ Classes рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрдерд╛ Data рдФрд░ Functions рдХреЛ рдПрдХ рд╕рд╛рде рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

OOP = Objects + Classes + Data + Methods

Objectives of OOP

  • Real World Modeling рдХрд░рдирд╛ред
  • Code Reusability рдмрдврд╝рд╛рдирд╛ред
  • Data Security рдкреНрд░рджрд╛рди рдХрд░рдирд╛ред
  • Large Software Development рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдирд╛ред
  • Maintenance Cost рдХрдо рдХрд░рдирд╛ред
  • Software Quality Improve рдХрд░рдирд╛ред
  • Development Time рдХрдо рдХрд░рдирд╛ред

Main Characteristics of OOP

  1. Class
  2. Object
  3. Encapsulation
  4. Abstraction
  5. Inheritance
  6. Polymorphism
  7. Dynamic Binding
  8. Message Passing

1. Class

Class рдПрдХ User Defined Data Type рдпрд╛ Blueprint рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ Objects рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред Class рдореЗрдВ Data Members рддрдерд╛ Member Functions рджреЛрдиреЛрдВ рд╣реЛрддреЗ рд╣реИрдВред

Class рд╕реНрд╡рдпрдВ Memory Occupy рдирд╣реАрдВ рдХрд░рддреАред Memory рдХреЗрд╡рд▓ рдЙрд╕рдХреЗ Objects рдмрдирдиреЗ рдкрд░ Allocate рд╣реЛрддреА рд╣реИред

Characteristics of Class

  • Blueprint of Objects
  • User Defined Data Type
  • Contains Data Members
  • Contains Member Functions
  • Supports Encapsulation

Example

class Student {
  int roll;
  void display();
};

2. Object

Object рдХрд┐рд╕реА Class рдХрд╛ Instance рд╣реЛрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ Object рдХреЗ рдкрд╛рд╕ рдЕрдкрдирд╛ рдЕрд▓рдЧ Data рддрдерд╛ Functions рд╣реЛрддреЗ рд╣реИрдВред

рдЬрдм Class рдХрд╛ Object рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрдм Memory Allocate рд╣реЛрддреА рд╣реИ рддрдерд╛ Object Program рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдкреНрд░рд╛рд░рдореНрдн рдХрд░рддрд╛ рд╣реИред

Characteristics of Object

  • Instance of Class
  • Occupies Memory
  • Contains State
  • Contains Behaviour
  • Has Unique Identity

Example

Student s1;
Student s2;

Difference between Class and Object

Class Object
Blueprint Instance
No Memory Allocation Memory Allocated
Logical Entity Physical Entity
Template Real Object

3. Encapsulation

Encapsulation OOP рдХрд╛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг Concept рд╣реИ рдЬрд┐рд╕рдореЗрдВ Data рддрдерд╛ Functions рдХреЛ рдПрдХ рд╣реА Unit рдЕрд░реНрдерд╛рдд Class рдХреЗ рдЕрдВрджрд░ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде-рд╕рд╛рде Data рдХреЛ Unauthorized Access рд╕реЗ рднреА рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред

Encapsulation Data Hiding рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдХреЗрд╡рд▓ Authorized Functions рд╣реА Data рдХреЛ Access рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

Advantages of Encapsulation

  • Data Security
  • Data Hiding
  • Better Maintainability
  • Improved Flexibility
  • Easy Code Management
Concept Purpose
Class Blueprint
Object Instance of Class
Encapsulation Data + Methods Together

4. Abstraction

Abstraction рдХрд╛ рдЕрд░реНрде рд╣реИ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ Information рдХреЛ User рдХреЗ рд╕рд╛рдордиреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рддрдерд╛ Internal Implementation Details рдХреЛ рдЫрд┐рдкрд╛рдирд╛ред рдпрд╣ OOP рдХрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг Concept рд╣реИ рдЬреЛ Program рдХреЛ рд╕рд░рд▓ рддрдерд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬрдм рд╣рдо ATM Machine рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдореЗрдВ рдХреЗрд╡рд▓ Withdraw, Deposit рддрдерд╛ Balance Check рдЬреИрд╕реЗ Functions рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ Internal Processing рд╣рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреАред рдпрд╣реА Abstraction рд╣реИред

Characteristics of Abstraction

  • Hides Internal Implementation
  • Shows Only Essential Features
  • Improves Security
  • Reduces Complexity
  • Easy Maintenance

5. Inheritance

Inheritance рд╡рд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдирдИ Class, Existing Class рдХреА Properties рддрдерд╛ Member Functions рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИред Existing Class рдХреЛ Base Class (Parent Class) рддрдерд╛ рдирдИ Class рдХреЛ Derived Class (Child Class) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

Inheritance Code Reusability рдмрдврд╝рд╛рддрд╛ рд╣реИ рддрдерд╛ Software Development рдХреЛ рддреЗрдЬ рдПрд╡рдВ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред

Types of Inheritance

  • Single Inheritance
  • Multiple Inheritance
  • Multilevel Inheritance
  • Hierarchical Inheritance
  • Hybrid Inheritance

Advantages

  • Code Reusability
  • Easy Maintenance
  • Reduced Development Time
  • Improved Extensibility

6. Polymorphism

Polymorphism рдХрд╛ рдЕрд░реНрде рд╣реИ "One Interface, Many Forms" рдЕрд░реНрдерд╛рдд рдПрдХ рд╣реА Function рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИред

Types of Polymorphism

Type Description
Compile Time Polymorphism Function Overloading, Operator Overloading
Run Time Polymorphism Function Overriding using Virtual Functions

Advantages

  • Flexible Programming
  • Easy Code Extension
  • Improved Readability
  • Better Maintainability

7. Dynamic Binding

Dynamic Binding рд╡рд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд┐рд╕реА Function Call рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд┐рд░реНрдгрдп Program рдХреЗ Run Time рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ Late Binding рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

Dynamic Binding рдореБрдЦреНрдпрддрдГ Virtual Functions рддрдерд╛ Run Time Polymorphism рдореЗрдВ рдЙрдкрдпреЛрдЧ рд╣реЛрддреА рд╣реИред


8. Message Passing

Message Passing рд╡рд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ Object рджреВрд╕рд░реЗ Object рдХреЛ Function Call рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрджреЗрд╢ (Message) рднреЗрдЬрддрд╛ рд╣реИред Objects рдЖрдкрд╕ рдореЗрдВ Communication рдХрд░рдХреЗ Complex Tasks рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣ Concept Large Scale Software Systems рдореЗрдВ Object Interaction рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИред


Comparison of OOP Concepts

Concept Purpose
Class Blueprint for Objects
Object Instance of Class
Encapsulation Data Hiding
Abstraction Hide Implementation Details
Inheritance Code Reusability
Polymorphism One Interface, Many Forms
Dynamic Binding Run Time Function Binding
Message Passing Object Communication

Advantages of Object Oriented Programming

  • Code Reusability
  • High Security
  • Better Maintainability
  • Easy Software Development
  • Reduced Complexity
  • Scalability
  • Modularity
  • Improved Productivity

Applications of OOP

  • Enterprise Applications
  • Desktop Software
  • Web Applications
  • Android Applications
  • Game Development
  • Banking Systems
  • ERP Software
  • Cloud Computing
  • Artificial Intelligence
  • Embedded Systems

Industrial Importance

рдЖрдЬ рдЕрдзрд┐рдХрд╛рдВрд╢ Software Companies рдЬреИрд╕реЗ Microsoft, Google, Oracle, IBM, SAP рддрдерд╛ Adobe рдЕрдкрдиреЗ Enterprise Software Development рдореЗрдВ Object Oriented Programming рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред OOP рдмрдбрд╝реЗ рддрдерд╛ Complex Software Systems рдХреЗ Development рдХреЛ рдЖрд╕рд╛рди, рд╕реБрд░рдХреНрд╖рд┐рдд рддрдерд╛ Maintainable рдмрдирд╛рддрд╛ рд╣реИред


Viva Questions

  1. What is Object Oriented Programming?
  2. What is a Class?
  3. What is an Object?
  4. Define Encapsulation.
  5. What is Abstraction?
  6. Explain Inheritance.
  7. What is Polymorphism?
  8. What is Dynamic Binding?
  9. What is Message Passing?
  10. List the main concepts of OOP.

Exam Oriented Important Questions

  1. Define Object Oriented Programming.
  2. Explain the characteristics of OOP.
  3. Differentiate between Class and Object.
  4. Explain Encapsulation and Abstraction.
  5. Describe Inheritance and its Types.
  6. Explain Polymorphism with Types.
  7. Write notes on Dynamic Binding and Message Passing.
  8. Discuss the advantages and applications of OOP.

Conclusion

Object Oriented Programming рдЖрдзреБрдирд┐рдХ Software Development рдХреА рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА Methodology рд╣реИред рдЗрд╕рдХреЗ рдореБрдЦреНрдп Concepts рдЬреИрд╕реЗ Class, Object, Encapsulation, Abstraction, Inheritance, Polymorphism, Dynamic Binding рддрдерд╛ Message Passing Software рдХреЛ рдЕрдзрд┐рдХ Secure, Reusable, Scalable рддрдерд╛ Maintainable рдмрдирд╛рддреЗ рд╣реИрдВред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рд╕рдордп рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ Professional Software Development OOP рдЖрдзрд╛рд░рд┐рдд Programming Languages рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Related Articles

Arrays in C++ Notes | One Dimensional & Two Dimensional Arrays with Programs | Basic Computer Engineering | RGPV BTech First Year

Arrays ...

Read More тЖТ

Control Statements in C++ Notes | Decision Making & Looping Statements | Basic Computer Engineering | RGPV BTech First Year

Control...

Read More тЖТ

Expressions in C++ Notes | Types of Expressions, Evaluation & Expression Statements | Basic Computer Engineering | RGPV BTech First Year

Express...

Read More тЖТ

Operators in C++ Notes | Arithmetic, Relational, Logical, Assignment, Bitwise Operators | Basic Computer Engineering | RGPV BTech First Year

Operato...

Read More тЖТ

Program Structure in C++ Notes | Basic Computer Engineering | RGPV BTech First Year

Program...

Read More тЖТ