Encapsulation
Prasanth

Prasanth @prasanth362k

Location:
Tamilnadu
Joined:
Mar 24, 2025

Encapsulation

Publish Date: Jun 13
1 1

What is Encapsulation ?

  • Encapsulation is the process of wrapping data(variables) and code (methods) together as a single unit . It hides the internal state of object from outside access, that mean the variable of a class will be hidden from other classes, and can be accessed only through method of current class. Encapsulation used to achieve data hiding ,not itself data hiding.

Why Use Encapsulation

  • protects Data : keep important Fields are private (data-variable) safe from direct access.
  • Hides Details : show only necessary thins to the user
  • Controls Access:- gives control over who can read or change the data. that mean you can lock you data using private and you give a key (get/set method) to trusted one,only change authorized class or user.
  • Easy to change: you can change the code inside without affecting other code and also you can use another project Encapsulated project

Achieving Encapsulation in java:-

Declare the variables of a class as private.
provide public setters(write-only) and getters(read-only) methods to modify and view the variables values.

Benefits of Encapsulation:-
The fields(global variable ) of class can be made read-only (or) write-only. class can have total control over what is stored in the fields.

Example:-

package encapsulation;

public class BankAccount {

    // private variable - hidden from outside
    private  String  accountHolderName;
    private int accountNumber;
    private double balance;



    // constructor
    BankAccount(String name ,int accNumber, double initialBalance)

    {
        this.accountHolderName=name;
        this.accountNumber=accNumber;
        if (initialBalance >=0)
        {
        this.balance=initialBalance;

        }
        else
        {
            System.out.println("Invalid blance! setto 0 by default. ");
            this.balance=0;
        }
    }

    public String getAccountHolderName()
    {
        return accountHolderName;
    }

    public void setAccountHolderName(String name)
    {
        if (name != null && !name.isEmpty())
        {
    this.accountHolderName= name;
        }else
        {
            System.out.println("Invalid name!");

        }
    }
    // Get balance (no direct access to variable)
    public double getBalance()
    {

        return balance;
    }
    // withdraw method with check
    public void deposit(double amount)
    {
        if (amount > 0 )
        {
            balance += amount;
            System.out.println("Deposited: "+ amount);
        }
        else {
            System.out.println("Invalid deposite amount!   ");

        }
    }

    // deposit method with validation
    public void withdraw (double amount)
    {
    if (amount > 0 &&amount <= balance)
    {

        balance -= amount;
        System.out.println(" Withdrawn:"+ amount);
    }
    else
    {
        System.out.println("Invalid funds");
    }
    }

    //Display details (read-only)

    public void displayAccountInfo()
    {
        System.out.println("Account Holder: "+ accountHolderName);
        System.out.println("Account Number: "+ accountNumber );
        System.out.println("Current Balance: "+ balance);


    }

}



package encapsulation;

public class Bank_Main {

    public static void main(String[] args) {


        BankAccount account = new BankAccount("Prasanth",1001,5000);

    account.displayAccountInfo();
    account.deposit(1500);
    account.displayAccountInfo();



    //Trying to withdraw
    account.withdraw(1500);
    account.displayAccountInfo();



    //trying to withdraw
    account.withdraw(2000);
    account.displayAccountInfo();

    // Trying to set a bad name
    account.setAccountHolderName("");
    account.setAccountHolderName("sam");
    System.out.println("updated name:" +account.getAccountHolderName());


    //trying invalid operations
    account.deposit(-500);
    account.withdraw(10000); //more than balance

    }



}

Enter fullscreen mode Exit fullscreen mode

Encapsulation Read-only class

Example:2

package encapsulation;

// Creating Write-Only Class
public class FruitShop {

    private String fruitname;
    private int fruitprice;

    public  void setName(String name)
    {
        this.fruitname=name;

    }

    public void  setfruitPrice(int price)
    {
        this.fruitprice=price;
    }
}


package encapsulation;

// Creating Write-Only Class
public class FruitShop {

    private String fruitname;
    private int fruitprice;

    public  void setName(String name)
    {
        this.fruitname=name;

    }

    public void  setfruitPrice(int price)
    {
        this.fruitprice=price;
    }
}


Enter fullscreen mode Exit fullscreen mode

Read and write:-

package encapsulation;

public class TechwaveEmployee {

    private String emp_name;
    private String  emp_id;
    private double net_salary;

    TechwaveEmployee(String emp_name,String emp_id ,double net_salary)
    {
        this.emp_name =emp_name;
        this.emp_id = emp_id;
        this.net_salary = net_salary;
    }

    public String getEmp_name() {
        return emp_name;
    }

    public void setEmp_name(String emp_name) {
        this.emp_name = emp_name;
    }

    public String getEmp_id() {
        return emp_id;
    }

    public void setEmp_id(String emp_id) {
        this.emp_id = emp_id;
    }

    public double getNet_salary() {
        return net_salary;
    }

    public void setNet_salary(double net_salary) {
        this.net_salary = net_salary;
    }
}




package encapsulation;

public class TechWaveHr {

    public static void main(String[] args) {

        // first object - setting values using constructor
        TechwaveEmployee person1 = new TechwaveEmployee("Prasanth","Empl001",15000.00);

        TechWaveHr person2 =  new TechWaveHr();

        // printing data
        System.out.println("Employee (Initial values):");
        System.out.println(person1.getEmp_id()+ " , "+ person1.getEmp_name()+" ," + person1.getNet_salary());

        // updating values setter methods
        person1.setEmp_id("Empl002");
        person1.setEmp_name("Vishal");
        person1.setNet_salary(50000.00);


        //printing data

        // printing data
                System.out.println("Employee (Updated values):");
                System.out.println(person1.getEmp_id()+ " , "+ person1.getEmp_name()+" ," + person1.getNet_salary());

    }

}



Enter fullscreen mode Exit fullscreen mode

Comments 1 total

  • Admin
    AdminJun 13, 2025

    We’re thrilled to announce Dev.to is distributing DEV Contributor rewards to celebrate our authors' impact in Web3. Visit the claim page here. for verified Dev.to users only. – Dev.to Team

Add comment