Encapsulation در جاوا

Encapsulation در جاوا (کپسوله سازی)

در این جلسه به آموزش Encapsulation در جاوا میپردازیم. پیش نیاز این آموزش شامل موارد زیر است:

  1. آشنایی با setter و getter
  2. آشنایی با شی گرایی
  3. آشنایی با this

Encapsulation در جاوا

Encapsulation (کپسوله سازی) به معنی مخفی کردن جزییات پیاده سازی از کاربران است.این کار را با private نمودن فیلد‌ها یا متدهای کلاس انجام میدهند.اگر یک فیلد را private تعریف کنیم بدین معنی است فقط در خود کلاس قابل دسترس است و کلاس های دیگر به این فیلد دسترسی ندارند.

گاهی نیاز داریم یک فیلد که Private است را از کلاس دیگر مقدار آن را تغییر دهیم. برای این کار از متدهای setter یا getter استفاده میکنند. این متدها public هستند پس میتوان از کلاس های دیگر به آنها دسترسی پیدا کرد. در آخر این نکته را ذکر کنیم که گاهی به Encapsulation در جاوا data hiding نیز گفته میشود.

مثال Encapsulation در جاوا

با توجه به توضیحاتی که داده شد در این قسمت مثالی ساده درباره Encapsulation در جاوا میزنیم. یک کلاس Encapsulationperson داریم که این کلاس اطلاعات کلی یک انسان را نگهداری میکند.کد آن به صورت زیر است:

public class Encapsulation {

    private int ssn;

    private String Name;

    private int Age;

    //Getter and Setter methods

    public int getSSN(){

        return this.ssn;

    }

    public String getName(){

        return this.Name;

    }

    public int getAge(){

        return this.Age;

    }

    public void setAge(int Age){

        this.Age = Age;

    }

    public void setName(String Name){

        this.Name = Name;

    }

    public void setSSN(int ssn){

        this.ssn = ssn;

    }

}

در کد بالا سه فیلد به نام name و ssn(شماره تامین اجتماعی) و age برای یک انسان تعریف کردیم. سپس برای همه فیلدها متد setter و getter نوشتیم. بعد در main میتوانید راحتی استفاده از این کلاس را ببینید.

فواید Encapsulation در جاوا

  1. Encapsulation قابلیت نگهداری کد را بالا میبرد و همینطور قابلیت استفاده مجدد را برای برنامه نویسان راحت تر میکند
  2. فیلدها قابلیت این را دارند که فقط خوانده شوند یا فقط تغییر کنند ولی مقدار آن دسترسی پیدا نکنند.
  3. کاربر از پشت صحنه کد خبری ندارد ولی اطلاعات مورد نیاز را دریافت میکند.

تست کد Encapsulation در جاوا

برای تست کدهای بالا،کد main زیر را بزنید:

     public static void main(String[] args) {

        Encapsulation obj = new Encapsulation();

        obj.setName(“Mario”);

        obj.setAge(32);

        obj.setSSN(112233);

        System.out.println(“Person Name: ” + obj.getName());

        System.out.println(“Person SSN: ” + obj.getSSN());

        System.out.println(“Person Age: ” + obj.getAge());

     }

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *