کپسوله سازی (Encapsulation) در جاوا
سلام دوستان در این سری از آموزش برنامه نویسی جاوا به آموزش کپسوله سازی (Encapsulation) در جاوا می پردازیم کپسوله سازی یا Encapsulation یکی از چهار موارد اساسی در برنامه نویسی شئ گرا یا OOP است اگر بخواهیم کپسوله سازی یا Encapsulation را در چند جمله بیان کنیم می توان گفت از Encapsulation به منظور افزایش امنیت متغیر ها (variable) از کلاس های دیگر می توان استفاده کرد در ادامه با ما همراه باشید تا نحوه استفاده از Encapsulation یا کپسوله سازی را یاد گیرید.
زمانی که از کپسوله سازی یا Encapsulation در برنامه استفاده شود متغیرهای کلاس از کلاس های دیگر غیر قابل دسترسی و پنهان خواهند بود از Encapsulation (کپسوله سازی) به عنوان data hiding نیز یاد می شود.
برای اینکه Encapsulation یا کپسوله سازی انجام شود باید دو کار انجام گیرد که عبارتند از :
- تعریف متغیر های کلاس به صورت private
- تعریف getter و setter های public
ابتدا یک کلاس به نام EncapTest ایجاد کنید و کدهای زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public class EncapTest { private String name; private String idNum; private int age; public int getAge() { return age; } public String getName() { return name; } public String getIdNum() { return idNum; } public void setAge( int newAge) { age = newAge; } public void setName(String newName) { name = newName; } public void setIdNum( String newId) { idNum = newId; } } |
کلاس بال به getter/setter و همینطور POJO معروف است.
برای دسترسی به مقادیر و همینطور set کردن متغیر ها از setXXX() و getXXX() می توانیم استفاده کنیم. نحوه دسترسی به کلاس Pojo ما همانند زیر خواهد بود.
یک کلاس به نام RunEncap ایجاد کنید و کدهای زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 | public class RunEncap { public static void main(String args[]) { EncapTest encap = new EncapTest(); encap.setName("James"); encap.setAge(20); encap.setIdNum("12343ms"); System.out.print("Name : " + encap.getName() + " Age : " + encap.getAge()); } } |
همانطور که دید در اینجا از یک کلاس واسط استفاده کردیم در بالا یک Instance از کلاس Pojo ساختیم سپس یکسری مقدار به آن اضافه کردیم و در نهایت آن را چاپ کردیم.
خروجی کد بالا همانند زیر خواهد بود.
1 | Name : James Age : 20 |
مزایای کپسوله سازی (Encapsulation)
- فیلد های کلاس فقط خواندنی و فقط نوشتنی است. (Read Only , Write Only)
- کلاس شامل تمای داده ها خواهد بود و کنترل آن ساده خواهد بود.
این آموزش به پایان رسید.
موفق باشید.