Explore Courses
Liverpool Business SchoolLiverpool Business SchoolMBA by Liverpool Business School
  • 18 Months
Bestseller
Golden Gate UniversityGolden Gate UniversityMBA (Master of Business Administration)
  • 15 Months
Popular
O.P.Jindal Global UniversityO.P.Jindal Global UniversityMaster of Business Administration (MBA)
  • 12 Months
New
Birla Institute of Management Technology Birla Institute of Management Technology Post Graduate Diploma in Management (BIMTECH)
  • 24 Months
Liverpool John Moores UniversityLiverpool John Moores UniversityMS in Data Science
  • 18 Months
Popular
IIIT BangaloreIIIT BangalorePost Graduate Programme in Data Science & AI (Executive)
  • 12 Months
Bestseller
Golden Gate UniversityGolden Gate UniversityDBA in Emerging Technologies with concentration in Generative AI
  • 3 Years
upGradupGradData Science Bootcamp with AI
  • 6 Months
New
University of MarylandIIIT BangalorePost Graduate Certificate in Data Science & AI (Executive)
  • 8-8.5 Months
upGradupGradData Science Bootcamp with AI
  • 6 months
Popular
upGrad KnowledgeHutupGrad KnowledgeHutData Engineer Bootcamp
  • Self-Paced
upGradupGradCertificate Course in Business Analytics & Consulting in association with PwC India
  • 06 Months
OP Jindal Global UniversityOP Jindal Global UniversityMaster of Design in User Experience Design
  • 12 Months
Popular
WoolfWoolfMaster of Science in Computer Science
  • 18 Months
New
Jindal Global UniversityJindal Global UniversityMaster of Design in User Experience
  • 12 Months
New
Rushford, GenevaRushford Business SchoolDBA Doctorate in Technology (Computer Science)
  • 36 Months
IIIT BangaloreIIIT BangaloreCloud Computing and DevOps Program (Executive)
  • 8 Months
New
upGrad KnowledgeHutupGrad KnowledgeHutAWS Solutions Architect Certification
  • 32 Hours
upGradupGradFull Stack Software Development Bootcamp
  • 6 Months
Popular
upGradupGradUI/UX Bootcamp
  • 3 Months
upGradupGradCloud Computing Bootcamp
  • 7.5 Months
Golden Gate University Golden Gate University Doctor of Business Administration in Digital Leadership
  • 36 Months
New
Jindal Global UniversityJindal Global UniversityMaster of Design in User Experience
  • 12 Months
New
Golden Gate University Golden Gate University Doctor of Business Administration (DBA)
  • 36 Months
Bestseller
Ecole Supérieure de Gestion et Commerce International ParisEcole Supérieure de Gestion et Commerce International ParisDoctorate of Business Administration (DBA)
  • 36 Months
Rushford, GenevaRushford Business SchoolDoctorate of Business Administration (DBA)
  • 36 Months
KnowledgeHut upGradKnowledgeHut upGradSAFe® 6.0 Certified ScrumMaster (SSM) Training
  • Self-Paced
KnowledgeHut upGradKnowledgeHut upGradPMP® certification
  • Self-Paced
IIM KozhikodeIIM KozhikodeProfessional Certification in HR Management and Analytics
  • 6 Months
Bestseller
Duke CEDuke CEPost Graduate Certificate in Product Management
  • 4-8 Months
Bestseller
upGrad KnowledgeHutupGrad KnowledgeHutLeading SAFe® 6.0 Certification
  • 16 Hours
Popular
upGrad KnowledgeHutupGrad KnowledgeHutCertified ScrumMaster®(CSM) Training
  • 16 Hours
Bestseller
PwCupGrad CampusCertification Program in Financial Modelling & Analysis in association with PwC India
  • 4 Months
upGrad KnowledgeHutupGrad KnowledgeHutSAFe® 6.0 POPM Certification
  • 16 Hours
O.P.Jindal Global UniversityO.P.Jindal Global UniversityMaster of Science in Artificial Intelligence and Data Science
  • 12 Months
Bestseller
Liverpool John Moores University Liverpool John Moores University MS in Machine Learning & AI
  • 18 Months
Popular
Golden Gate UniversityGolden Gate UniversityDBA in Emerging Technologies with concentration in Generative AI
  • 3 Years
IIIT BangaloreIIIT BangaloreExecutive Post Graduate Programme in Machine Learning & AI
  • 13 Months
Bestseller
IIITBIIITBExecutive Program in Generative AI for Leaders
  • 4 Months
upGradupGradAdvanced Certificate Program in GenerativeAI
  • 4 Months
New
IIIT BangaloreIIIT BangalorePost Graduate Certificate in Machine Learning & Deep Learning (Executive)
  • 8 Months
Bestseller
Jindal Global UniversityJindal Global UniversityMaster of Design in User Experience
  • 12 Months
New
Liverpool Business SchoolLiverpool Business SchoolMBA with Marketing Concentration
  • 18 Months
Bestseller
Golden Gate UniversityGolden Gate UniversityMBA with Marketing Concentration
  • 15 Months
Popular
MICAMICAAdvanced Certificate in Digital Marketing and Communication
  • 6 Months
Bestseller
MICAMICAAdvanced Certificate in Brand Communication Management
  • 5 Months
Popular
upGradupGradDigital Marketing Accelerator Program
  • 05 Months
Jindal Global Law SchoolJindal Global Law SchoolLL.M. in Corporate & Financial Law
  • 12 Months
Bestseller
Jindal Global Law SchoolJindal Global Law SchoolLL.M. in AI and Emerging Technologies (Blended Learning Program)
  • 12 Months
Jindal Global Law SchoolJindal Global Law SchoolLL.M. in Intellectual Property & Technology Law
  • 12 Months
Jindal Global Law SchoolJindal Global Law SchoolLL.M. in Dispute Resolution
  • 12 Months
upGradupGradContract Law Certificate Program
  • Self paced
New
ESGCI, ParisESGCI, ParisDoctorate of Business Administration (DBA) from ESGCI, Paris
  • 36 Months
Golden Gate University Golden Gate University Doctor of Business Administration From Golden Gate University, San Francisco
  • 36 Months
Rushford Business SchoolRushford Business SchoolDoctor of Business Administration from Rushford Business School, Switzerland)
  • 36 Months
Edgewood CollegeEdgewood CollegeDoctorate of Business Administration from Edgewood College
  • 24 Months
Golden Gate UniversityGolden Gate UniversityDBA in Emerging Technologies with Concentration in Generative AI
  • 36 Months
Golden Gate University Golden Gate University DBA in Digital Leadership from Golden Gate University, San Francisco
  • 36 Months
Liverpool Business SchoolLiverpool Business SchoolMBA by Liverpool Business School
  • 18 Months
Bestseller
Golden Gate UniversityGolden Gate UniversityMBA (Master of Business Administration)
  • 15 Months
Popular
O.P.Jindal Global UniversityO.P.Jindal Global UniversityMaster of Business Administration (MBA)
  • 12 Months
New
Deakin Business School and Institute of Management Technology, GhaziabadDeakin Business School and IMT, GhaziabadMBA (Master of Business Administration)
  • 12 Months
Liverpool John Moores UniversityLiverpool John Moores UniversityMS in Data Science
  • 18 Months
Bestseller
O.P.Jindal Global UniversityO.P.Jindal Global UniversityMaster of Science in Artificial Intelligence and Data Science
  • 12 Months
Bestseller
IIIT BangaloreIIIT BangalorePost Graduate Programme in Data Science (Executive)
  • 12 Months
Bestseller
O.P.Jindal Global UniversityO.P.Jindal Global UniversityO.P.Jindal Global University
  • 12 Months
WoolfWoolfMaster of Science in Computer Science
  • 18 Months
New
Liverpool John Moores University Liverpool John Moores University MS in Machine Learning & AI
  • 18 Months
Popular
Golden Gate UniversityGolden Gate UniversityDBA in Emerging Technologies with concentration in Generative AI
  • 3 Years
Rushford, GenevaRushford Business SchoolDoctorate of Business Administration (AI/ML)
  • 36 Months
Ecole Supérieure de Gestion et Commerce International ParisEcole Supérieure de Gestion et Commerce International ParisDBA Specialisation in AI & ML
  • 36 Months
Golden Gate University Golden Gate University Doctor of Business Administration (DBA)
  • 36 Months
Bestseller
Ecole Supérieure de Gestion et Commerce International ParisEcole Supérieure de Gestion et Commerce International ParisDoctorate of Business Administration (DBA)
  • 36 Months
Rushford, GenevaRushford Business SchoolDoctorate of Business Administration (DBA)
  • 36 Months
Liverpool Business SchoolLiverpool Business SchoolMBA with Marketing Concentration
  • 18 Months
Bestseller
Golden Gate UniversityGolden Gate UniversityMBA with Marketing Concentration
  • 15 Months
Popular
Jindal Global Law SchoolJindal Global Law SchoolLL.M. in Corporate & Financial Law
  • 12 Months
Bestseller
Jindal Global Law SchoolJindal Global Law SchoolLL.M. in Intellectual Property & Technology Law
  • 12 Months
Jindal Global Law SchoolJindal Global Law SchoolLL.M. in Dispute Resolution
  • 12 Months
IIITBIIITBExecutive Program in Generative AI for Leaders
  • 4 Months
New
IIIT BangaloreIIIT BangaloreExecutive Post Graduate Programme in Machine Learning & AI
  • 13 Months
Bestseller
upGradupGradData Science Bootcamp with AI
  • 6 Months
New
upGradupGradAdvanced Certificate Program in GenerativeAI
  • 4 Months
New
KnowledgeHut upGradKnowledgeHut upGradSAFe® 6.0 Certified ScrumMaster (SSM) Training
  • Self-Paced
upGrad KnowledgeHutupGrad KnowledgeHutCertified ScrumMaster®(CSM) Training
  • 16 Hours
upGrad KnowledgeHutupGrad KnowledgeHutLeading SAFe® 6.0 Certification
  • 16 Hours
KnowledgeHut upGradKnowledgeHut upGradPMP® certification
  • Self-Paced
upGrad KnowledgeHutupGrad KnowledgeHutAWS Solutions Architect Certification
  • 32 Hours
upGrad KnowledgeHutupGrad KnowledgeHutAzure Administrator Certification (AZ-104)
  • 24 Hours
KnowledgeHut upGradKnowledgeHut upGradAWS Cloud Practioner Essentials Certification
  • 1 Week
KnowledgeHut upGradKnowledgeHut upGradAzure Data Engineering Training (DP-203)
  • 1 Week
MICAMICAAdvanced Certificate in Digital Marketing and Communication
  • 6 Months
Bestseller
MICAMICAAdvanced Certificate in Brand Communication Management
  • 5 Months
Popular
IIM KozhikodeIIM KozhikodeProfessional Certification in HR Management and Analytics
  • 6 Months
Bestseller
Duke CEDuke CEPost Graduate Certificate in Product Management
  • 4-8 Months
Bestseller
Loyola Institute of Business Administration (LIBA)Loyola Institute of Business Administration (LIBA)Executive PG Programme in Human Resource Management
  • 11 Months
Popular
Goa Institute of ManagementGoa Institute of ManagementExecutive PG Program in Healthcare Management
  • 11 Months
IMT GhaziabadIMT GhaziabadAdvanced General Management Program
  • 11 Months
Golden Gate UniversityGolden Gate UniversityProfessional Certificate in Global Business Management
  • 6-8 Months
upGradupGradContract Law Certificate Program
  • Self paced
New
IU, GermanyIU, GermanyMaster of Business Administration (90 ECTS)
  • 18 Months
Bestseller
IU, GermanyIU, GermanyMaster in International Management (120 ECTS)
  • 24 Months
Popular
IU, GermanyIU, GermanyB.Sc. Computer Science (180 ECTS)
  • 36 Months
Clark UniversityClark UniversityMaster of Business Administration
  • 23 Months
New
Golden Gate UniversityGolden Gate UniversityMaster of Business Administration
  • 20 Months
Clark University, USClark University, USMS in Project Management
  • 20 Months
New
Edgewood CollegeEdgewood CollegeMaster of Business Administration
  • 23 Months
The American Business SchoolThe American Business SchoolMBA with specialization
  • 23 Months
New
Aivancity ParisAivancity ParisMSc Artificial Intelligence Engineering
  • 24 Months
Aivancity ParisAivancity ParisMSc Data Engineering
  • 24 Months
The American Business SchoolThe American Business SchoolMBA with specialization
  • 23 Months
New
Aivancity ParisAivancity ParisMSc Artificial Intelligence Engineering
  • 24 Months
Aivancity ParisAivancity ParisMSc Data Engineering
  • 24 Months
upGradupGradData Science Bootcamp with AI
  • 6 Months
Popular
upGrad KnowledgeHutupGrad KnowledgeHutData Engineer Bootcamp
  • Self-Paced
upGradupGradFull Stack Software Development Bootcamp
  • 6 Months
Bestseller
upGradupGradUI/UX Bootcamp
  • 3 Months
upGradupGradCloud Computing Bootcamp
  • 7.5 Months
PwCupGrad CampusCertification Program in Financial Modelling & Analysis in association with PwC India
  • 5 Months
upGrad KnowledgeHutupGrad KnowledgeHutSAFe® 6.0 POPM Certification
  • 16 Hours
upGradupGradDigital Marketing Accelerator Program
  • 05 Months
upGradupGradAdvanced Certificate Program in GenerativeAI
  • 4 Months
New
upGradupGradData Science Bootcamp with AI
  • 6 Months
Popular
upGradupGradFull Stack Software Development Bootcamp
  • 6 Months
Bestseller
upGradupGradUI/UX Bootcamp
  • 3 Months
PwCupGrad CampusCertification Program in Financial Modelling & Analysis in association with PwC India
  • 4 Months
upGradupGradCertificate Course in Business Analytics & Consulting in association with PwC India
  • 06 Months
upGradupGradDigital Marketing Accelerator Program
  • 05 Months

What is Encapsulation in OOPS? Types, Examples, Implementation, & More

By Pavan Vadapalli

Updated on Feb 10, 2025 | 17 min read

Share:

Encapsulation in OOPS (Object-Oriented Programming) is a vital concept that protects your data and keeps your classes neat. By bundling related properties and functions into a single unit, you decide exactly how outsiders interact with that unit, preventing unwanted meddling and keeping your code simpler to maintain. 

Whether you are building small projects or tackling more complex tasks, this approach helps you avoid messy code and unexpected bugs.

In this blog, you'll explore the core ideas behind encapsulation in OOPS and discover how C++, Java, and Python handle it. You'll learn about different types of encapsulation, understand its advantages and disadvantages, and pick up insights on data security and code organization. 

What is Encapsulation in OOPS, and What are its Types?

Encapsulation in Object-Oriented Programming combines data (attributes) and methods (functions) under one class. This allows you to control exactly how those methods interact with each other and how much of that interaction is visible to outside code.

Keeping certain parts private prevents unauthorized or accidental changes and maintains a clean boundary around your data.

Let’s understand it better with an example – consider a simple ‘StudentRecord’ class that manages a student’s name, marks, and roll number. In many programming languages, you control access to class members through access specifiers listed below:

  • Private Variables: You keep names and marks hidden, so no one updates them directly.
  • Public Methods: You create setters and getters to handle these variables. If someone tries to pass invalid marks, you can reject that upfront.
  • Data Consistency: Any future updates to ‘StudentRecord’ remain inside the class, so they don’t break anything else in your program.

Now that you understand encapsulation meaning in programming, you’ll see how it can take different forms in OOPS in the next section.

What Are the Types of Encapsulation in OOPS?

When discussing Encapsulation in OOPS, different strategies can help securely organize data and functions. 

Here are the common approaches you might find:

  • Member Variable Encapsulation: This focuses on declaring variables as private (or protected). You then provide specific methods to read or change those variables, preventing unwanted direct access.
  • Function Encapsulation: Specific functions are marked private, limiting who can call them. Only authorized methods within the class or its subclasses can interact with these functions.
  • Class Encapsulation: An entire class can be hidden from external code. If you label the class private (or package-private, depending on the language), any outside code won’t be able to create or manipulate its objects directly.

Encapsulation in OOPS is a core component of the software development process. So, if you are keen on learning about its intricate aspects, consider signing up for upGrad’s Online Software Development Courses.

What are the Two Important Properties of Encapsulation in OOPS?

Yes, encapsulation in OOPS does group data and methods – but it’s more than that. It also brings a set of rules that govern how information is protected and concealed. By applying these rules, you can keep sensitive parts of your code safe while still allowing valid interactions through designated access points. 

Here are two core properties that make this process effective:

1. Data Protection

Data Protection focuses on guarding sensitive variables behind class boundaries. For example, you might place details like passwords or bank balances in a private section of the class and then offer only controlled functions for reading or updating those details.

This approach reduces the risk of mistakes and unauthorized changes since you control how outside code interacts with the data.

Let’s understand this with the help of an example code.

In the following Java example, a BankAccount class uses private fields for balance and allows only controlled operations on that balance.

  • Private balance is defined.
  • Public methods depositwithdraw, and getBalance handle valid operations on that balance.
public class BankAccount {
    private double balance;
    
    public BankAccount(double initialBalance) {
        if (initialBalance >= 0) {
            balance = initialBalance;
        } else {
            balance = 0;
        }
    }
    
    public void deposit(double amount) {
        if (amount > 0) {
            balance += amount;
        }
    }
    
    public void withdraw(double amount) {
        if (amount <= balance && amount > 0) {
            balance -= amount;
        }
    }
    
    public double getBalance() {
        return balance;
    }
}

Output:

120.0

Why it helps: Direct access to balance is blocked. You control deposits and withdrawals through the class’s own methods, which means no external code can set an invalid balance.

2. Information Hiding

Information Hiding goes one step further by concealing not just the data but also any internal implementation. You only reveal the methods or interfaces that someone needs to accomplish tasks with your class. 

This separation lets you modify or improve the internal code later without affecting anything that relies on those public interfaces. It also keeps your overall design simpler for anyone using the class.

Let’s understand this with the help of an example code.

In this C++ example, a Student class includes hidden logic for validating age and makes that logic available only through public methods.

  • A private helper method, isValidAge, checks age validity. 
  • The setDetails method uses this helper method before saving any age value.
#include <iostream>
using namespace std;

class Student {
private:
    string name;
    int age;
    // Internal logic for validating data
    bool isValidAge(int a) {
        return (a > 0 && a < 150);
    }

public:
    // Public interface
    void setDetails(string n, int a) {
        name = n;
        if (isValidAge(a)) {
            age = a;
        } else {
            age = 0;
        }
    }

    void display() {
        cout << "Name: " << name << "\nAge: " << age << endl;
    }
};

int main() {
    Student s;
    s.setDetails("Rahul", 25);
    s.display();
    return 0;
}

Output: 

Name: Rahul
Age: 25

Why it helps: By exposing only setDetails and display, you can change how age is validated or stored later without breaking any external code.

How Does Encapsulation in OOPS Work? Learn With Examples

As you know, encapsulation ensures that data stays hidden unless a user is allowed to see it. You define how data is accessed and manipulated through a clear set of rules, which keeps your classes organized. 

Once you lock in these rules, you protect internal details while letting other parts of your program interact with the data through specific methods.

Here’s a clear step-by-step guidance on how encapsulation in OOPS works:

  1. Identify Data and Methods: Choose which variables or properties you want to hide and decide which operations need public access.
  2. Set Access Levels: Make important attributes private (or protected) to prevent direct changes. Expose only the methods that perform controlled tasks, such as setters and getters.
  3. Validate Inputs: Write checks in your setter methods to catch invalid data before it updates the hidden variables.
  4. Restrict Entry Points: Keep any sensitive functions private. Only allow other class methods or child classes (if relevant) to call them.

Now, let’s understand the working of encapsulation in OOPS with an example.

Below is a Java example that follows these steps and shows how encapsulation looks in practice:

  • A private marks field ensures no one can directly write random values into it.
  • The setter setMarks checks if the provided number is valid, then assigns it or sets a default.

Rahul’s marks default to 0 in this snippet since 120 didn’t fit the allowed range. That’s the power of encapsulation: you’re free to enforce strict rules and keep your data in a healthy state.

// File: Student.java
public class Student {
    private String name;
    private int marks;

    public Student(String n, int m) {
        name = n;
        setMarks(m); // Uses setter for validation
    }

    public void setMarks(int m) {
        if (m >= 0 && m <= 100) {
            marks = m;
        } else {
            marks = 0; // default if invalid
        }
    }

    public int getMarks() {
        return marks;
    }

    public String getName() {
        return name;
    }
}

// File: Demo.java
public class Demo {
    public static void main(String[] args) {
        Student s1 = new Student("Aditi", 85);
        System.out.println(s1.getName() + " => " + s1.getMarks());

        Student s2 = new Student("Rahul", 120); // Invalid
        System.out.println(s2.getName() + " => " + s2.getMarks());
    }
}

Output: 

Aditi => 85
Rahul => 0

In the coming sections, you’ll learn how to implement encapsulation in C++, Java, and Python. But before you can do that, you must understand that access modifiers differ in all these languages. Explore how!

Different Access Modifiers in C++, Java, and Python

Here’s a quick snapshot table citing the differences. Check it out to easily understand how encapsulation is implemented in these programming languages. . 

Language

Private / Protected

Public

C++ Modifiers private, protected public
Java Modifiers private, protected public
Python Modifiers No strict enforcement, but prefix with __var for private convention Regular function or variable name is considered public

That said, let’s dive into their implementation through examples.

Encapsulation in C++: How is it Done + Example

Encapsulation in C++ controls which parts of your code can access or modify data, keeping everything organized and safe. You often rely on private or protected members for sensitive details, then add public methods to handle valid interactions. This avoids unwanted changes and keeps your classes easy to maintain.

Here are some steps you can follow:

  • Identify Important Data: Decide which variables need to be shielded from direct access, like scores or balances.
  • Use Private or Protected: Mark those variables as private if no other classes should touch them or protected if subclassing might require controlled access.
  • Create Public Methods: Provide setters and getters that validate input or enforce rules before any data gets stored or retrieved.
  • Add Internal Checks: Keep logic that the outside world doesn’t need in private functions. This way, only your class methods can call them.

Example: Encapsulating a Student’s Details

Here, encapsulation prevents random external code from assigning negative or impossible values to marks. Thus, you maintain full control over valid data and guard against accidental errors.

  • Student class stores name and marks as private.
  • Setters and getters manage those values.
  • The main function creates objects and shows how data is safely read and written.
#include <iostream>
#include <string>
using namespace std;

class Student {
private:
    string name;
    int marks;

    bool isValidMarks(int m) {
        return (m >= 0 && m <= 100);
    }

public:
    void setName(string n) {
        name = n;
    }

    void setMarks(int m) {
        if (isValidMarks(m)) {
            marks = m;
        } else {
            marks = 0; // default if invalid
        }
    }

    string getName() {
        return name;
    }

    int getMarks() {
        return marks;
    }
};

int main() {
    Student s1, s2;
    
    s1.setName("Ravi");
    s1.setMarks(88);

    s2.setName("Priya");
    s2.setMarks(120); // invalid, gets set to 0

    cout << s1.getName() << " => " << s1.getMarks() << endl;
    cout << s2.getName() << " => " << s2.getMarks() << endl;

    return 0;
}

Output: 

Ravi => 88
Priya => 0

You can also study OOPS concepts in C++ to further expand your understanding of making software applications secure.

Encapsulation in Java: How is it Done + Example

Encapsulation in Java revolves around declaring your key data as private and then using public methods for controlled access. This way, you can insert checks, logs, or any additional logic without letting external code meddle with the underlying details. It’s a clean way to guard information while keeping classes flexible for future changes.

Here are some steps you can follow:

  • Declare Private Fields: Choose fields like balance or age that shouldn’t be modified directly.
  • Create Public Setters: Provide methods that validate data before storing it. For example, you can reject negative values or set a default.
  • Add Public Getters: Allow read-only access through these methods. This is handy if you need to convert or process data before returning it.
  • Keep Internal Checks: If your class requires helper methods that the outside world shouldn’t call, keep them private. That preserves clarity for anyone using the class.

Example: Encapsulating an Employee’s Details

In this code, you control every update to an employee’s salary while keeping the logic simple and centralized. If you ever decide to adjust the calculation or add error messages, the rest of your program remains unchanged.

  • A private salary field ensures no one sets or retrieves its value without the class’s supervision.
  • The setSalary method checks for valid input, and the getSalary method returns the approved salary.
// File: Employee.java
public class Employee {
    private String name;
    private double salary;

    public Employee(String n, double initialSalary) {
        name = n;
        setSalary(initialSalary); // Uses the setter for validation
    }

    public void setSalary(double amount) {
        if (amount >= 0) {
            salary = amount;
        } else {
            salary = 0;
        }
    }

    public double getSalary() {
        return salary;
    }

    public String getName() {
        return name;
    }
}

// File: Demo.java
public class Demo {
    public static void main(String[] args) {
        Employee emp1 = new Employee("Reema", 45000);
        System.out.println(emp1.getName() + " => " + emp1.getSalary());

        Employee emp2 = new Employee("Nikhil", -100);
        System.out.println(emp2.getName() + " => " + emp2.getSalary());
    }
}

Output:

Reema => 45000.0
Nikhil => 0.0

Need further clarification? Check out the OOPS Concept in Java Explained for Beginners to better grasp the subject. 

Encapsulation in Python: How is it Done + Example

Encapsulation in Python takes a less strict approach compared to languages like C++ or Java, but you can still structure your code so that only approved methods touch important data. 

Typically, you rely on naming conventions — especially prefixing an attribute with double underscores — to signal that it’s meant for internal use. You then supply property getters or regular methods to handle valid changes.

Here are a few steps to keep in mind:

  • Use Naming Conventions: Prefix private attributes with __ (e.g., __salary). Although Python won’t prevent direct access, the double underscores discourage unauthorized changes.
  • Provide Getter and Setter Methods: Let other parts of your code call these public methods to retrieve or modify your hidden variables. Add checks to keep values within sensible limits.
  • Keep the Logic Clear: Tuck those details inside private methods if you need extra validation or formatting. You can rename them using double underscores so they stay out of sight to outsiders.

Example: Encapsulating Details in a Python Class

In this code, while Python won’t block you from accessing __salary if you try hard enough, this pattern signals the right way to interact with employee data and keeps your code neatly organized.

class Employee:
    def __init__(self, name, salary):
        self.name = name
        self.__salary = 0
        self.set_salary(salary)

    def set_salary(self, amount):
        if amount > 0:
            self.__salary = amount
        else:
            self.__salary = 0

    def get_salary(self):
        return self.__salary

# Example usage:
if __name__ == "__main__":
    emp = Employee("Raj", 30000)
    print(emp.name, "=>", emp.get_salary())

    emp.set_salary(-500)  # Invalid, defaults to 0
    print(emp.name, "=>", emp.get_salary())

Output:

Raj => 30000
Raj => 0

Also Read: A Complete Guide on OOPs Concepts in Python

What are the Advantages and Disadvantages of Encapsulation in OOPS?

Encapsulation brings clear boundaries to how data is accessed, which can help you reduce errors and keep your code more organized. However, it also comes with certain trade-offs you need to consider before deciding how strictly to lock down each part of your system.

Let’s explore both!

Advantages of Encapsulation in OOPS

Here’s a tabulated snapshot of the benefits of encapsulation in OOPS

Advantage

Explanation

Data Protection Restricts direct access so only approved methods can modify sensitive details.
Improved Maintenance Contains changes within a class, letting you adjust internals without disturbing other parts.
Simplified Debugging Makes it easier to pinpoint issues, since each class manages its own data and logic.
Reusability Encapsulated modules can be reused in multiple projects with minimal refactoring.

Disadvantages of Encapsulation in OOPS

Here’s a summary of the pitfalls of encapsulation you must know.

Disadvantage

Explanation

Added Complexity Excessive private members and many getters/setters can create confusion.
Possible Performance Hit Layers of method calls can slow things down in performance-critical scenarios.
Limited Direct Access Forces you to go through methods instead of directly reading or updating data, which can be inconvenient at times.
Requires Early Planning Poor initial design can make future updates harder if you lock down classes too strictly.

What are the Real-world Analogies of Encapsulation in OOPS?

Encapsulation isn’t just a programming principle. You can spot it in everyday situations where the inside workings of a system are hidden, and only a limited set of actions is offered to the outside world. Seeing these parallels can help you grasp how encapsulation in OOPS secures data and keeps processes efficient.

Below are a few examples that highlight the concept.

1. Sales Department Analogy

In a company's sales department, data like customer records, sales figures, and contracts are handled by a team, but not everyone has access to it.

Encapsulation Example:

  • The sales department (class) bundles customer records (data) and sales processing (methods) into a single unit.
  • Only authorized staff, such as account managers, can view or update customer records through specific tools (methods), preventing unauthorized changes.
  • Internally, the system validates changes before updating sensitive data.

2. ATM Machine

An ATM is a great analogy for encapsulation, as it hides the complexities of its internal processes while exposing limited, user-friendly functionality.

Encapsulation Example:

  • The ATM (class) bundles data like account balance and methods like cash withdrawal, deposit, and balance inquiry.
  • Users interact only through the ATM's interface (methods), while the internal details like transaction processing and security checks are hidden.
  • The system ensures that withdrawals are allowed only within the account's balance limit, enhancing security and error prevention.

3. Car Engine System

A car's engine is encapsulated within the vehicle, with only specific controls exposed to the driver.

Encapsulation Example:

  • The engine (class) includes components like pistons and fuel injectors (data) and functions like ignition and acceleration (methods).
  • Drivers interact with the car via controls like the accelerator and ignition switch (public methods) without directly accessing internal components.
  • Encapsulation ensures the driver cannot inadvertently damage internal systems while allowing controlled functionality.

How Does Encapsulation Compare to Other 3 Pillars of OOPS?

Object-Oriented Programming (OOP) is built upon four fundamental principles, often referred to as pillars, that guide software design and promote code reusability, maintainability, and scalability. 

These pillars are Abstraction, Encapsulation, Inheritance, and Polymorphism. Each plays a vital role in creating robust and well-structured applications. 

Let's dive into how encapsulation compares with the other three pillars.

1. Encapsulation vs Abstraction

Abstraction simplifies complex systems by modeling classes appropriate to the problem and working at a suitable level of complexity. It involves hiding the complex implementation details and exposing only the essential information about an object. This allows developers to focus on what an object does rather than how it achieves it.

Here’s how it differs from encapsulation:

Aspect

Encapsulation

Abstraction

Primary Goal Data hiding and protection, ensuring data integrity Hiding complexity and presenting a simplified view to the user
Implementation Achieved by declaring class members as private and providing public methods (getters and setters) to access and modify them Achieved through abstract classes and interfaces, focusing on what an object does rather than how it does it
Focus Internal implementation details and data security External behavior and user interaction
Analogy A capsule that protects medicine from external contamination A car's steering wheel: you know how to use it without knowing the engine's inner workings

2. Encapsulation vs Inheritance

Inheritance is a mechanism where a new class acquires the properties and behaviors of an existing class. It promotes code reuse by allowing you to create new classes based on existing ones, inheriting their attributes and methods. This establishes a hierarchical relationship between classes, where subclasses inherit from superclasses.

Here’s how it compares with encapsulation in OOPS.

Aspect

Encapsulation

Inheritance

Primary Goal Data hiding and bundling data with related methods Code reusability and creating a hierarchy of classes
Implementation Restricting access to internal data using access modifiers (private, protected, public) Creating new classes from existing classes, inheriting their attributes and methods
Focus Protecting data and controlling access Extending functionality and establishing "is-a" relationships
Analogy A safe that protects valuable items A family tree where children inherit traits from their parents

3. Encapsulation vs Polymorphism 

Polymorphism is the ability of an object to take on many forms. More specifically, polymorphism means that a call to a member function will cause a different function to be executed depending on the type of object that invokes the function. It enables you to write code that can work with objects of different classes in a uniform way.

Here’s how it differs from encapsulation in OOPS.

Aspect

Encapsulation

Polymorphism

Primary Goal Data protection and bundling Flexibility and the ability to treat objects of different classes uniformly
Implementation Hiding internal data and providing controlled access Using interfaces, abstract classes, and method overriding
Focus Internal data representation and access control External behavior and the ability to take on multiple forms
Analogy A well-defined box with specific contents and access points A remote control that can operate different devices

How Can upGrad Help You?

Software designers with enhanced skills in encapsulation in OOPS are in great demand these days. If you are a Python, Java or C++ developer, then learning about encapsulation in object-oriented programming can be an asset to your resume. 

upGrad offers numerous courses on encapsulation in OOPS that will help you make your software programs secure and reliable. Here are some of the most popular courses that can help you to learn about encapsulation in OOPS: 

Looking for more help with your career plans? UpGrad offers free career counseling. These sessions can help you make wise decisions about your career goals.

Unlock the power of data with our popular Data Science courses, designed to make you proficient in analytics, machine learning, and big data!

Elevate your career by learning essential Data Science skills such as statistical modeling, big data processing, predictive analytics, and SQL!

Stay informed and inspired  with our popular Data Science articles, offering expert insights, trends, and practical tips for aspiring data professionals!

Frequently Asked Questions (FAQs)

1. What is data hiding in encapsulation?

2. Why is data encapsulation important?

3. What is abstraction vs encapsulation in OOP?

4. Why is it called encapsulation?

5. What is an example of encapsulation?

6. What is a real life example of encapsulation?

7. What is the basis of encapsulation?

8. Why is encapsulation useful?

9. What is class in OOPS?

10. Which language is pure object-oriented?

11. Is a car an example of encapsulation?

Pavan Vadapalli

971 articles published

Get Free Consultation

+91

By submitting, I accept the T&C and
Privacy Policy

Start Your Career in Data Science Today

Suggested Blogs