OOP from Zero to Advanced
Introduction
- Welcome to the college lecture.
- Today's focus: Cover OOP from zero to advanced level.
- Applicable for interviews (placements, internships) and college exams.
- Importance: Strong understanding of OOP for technical interviews, improving programming understanding, and its frequent implementation in companies.
Agenda
- Theory concepts
- Examples
- Important definitions
- Practical coding examples in C++
- 30 MCQ questions at the end of the session
Object-Oriented Programming (OOP) Overview
- What is OOP?
- A better way to write code thatтАЩs reusable and reflects real-world entities.
- Major OOP Concepts: Class and Object
- Class vs. Object
- Class: Blueprint for objects. Defines properties (attributes) and methods (functions).
- Object: Instance of a class with unique values.
Practical Example
- Class
Teacher
- Properties:
Name, Department, Subject, Salary
- Methods:
ChangeDepartment (to change the teacher's department)
- Access modifier: Public and Private members
Access Modifiers
- Private: Accessible only within the class. (default)
- Public: Accessible from outside the class.
- Protected: Accessible within the class and derived classes.
Encapsulation
- Definition: Wrapping data and methods into a single unit (class).
- Implementation: Using access modifiers to ensure data hiding.
- Example:
Teacher class with private properties and public methods.
Constructor
- Special method called automatically at the creation of an object.
- Types:
- Default (Non-parameterized) Constructor
- Parameterized Constructor
- Copy Constructor: Copies properties from one object to another.
- Example:
Teacher class with multiple constructors demonstrating overloading.
Destructor
- Opposite of Constructor, called automatically when an object goes out of scope.
- Purpose: Free allocated memory.
- Destructor Example:
~Teacher() {
// Cleanup code
}
Inheritance
- Definition: Mechanism where one class inherits properties and behavior from another.
- **Types: **
- Single Inheritance: One parent, one child
- Multi-level Inheritance: Chain of classes
- Hierarchical Inheritance: Multiple children, one parent
- Multiple Inheritance: One child, multiple parents
- Access Modifiers Roles in Inheritance
- Practical Example:
- Person, Student, and Teacher classes demonstrating different inheritance types.
Polymorphism
- Definition: Ability of different objects to respond uniquely to the same function.
- Types:
- Compile-time Polymorphism: Function/Constructor overloading
- Run-time Polymorphism: Function overriding, virtual functions
- Examples:
- Function Overloading: Multiple functions with the same name but different parameters.
- Function Overriding: Child class overrides the parent class function.
Abstract Class
- Definition: A class that cannot be instantiated. Meant for other classes to derive from.
- Uses: Provides a base for subclasses to enforce a contract.
- Pure Virtual Function: Implement with virtual keyword and
=0
virtual void draw() = 0;
- Example: Abstract
Shape class with Circle and Square derived classes.
Static Keyword
- Use with variables and methods.
- Static Variables: Retain value throughout the program.
- Static Member Example: Shared by all instances of a class.
static int count;
- Static Methods: Can be called on the class itself rather than instances.
Conclusion
- Review: Understanding key OOP concepts: Encapsulation, Inheritance, Polymorphism, Abstract Classes, Static Keyword.
- Preparation: Focus on theory but also enhance understanding through coding examples and solving MCQs.
- Practical Implementation: Keep practicing and reviewing key concepts for internships and placements.
All the best for your interviews and exams! Keep learning and keep hustling.