oruji.github.io
oruji.github.ioPersian Tutorials
ویرایش: 1396/11/22 23:09
A A

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

در زبان برنامه نویسی جاوا، encapsulation یا کپسوله سازی یکی از چهار مفاهیم اصلی شیءگرایی است. سه مفهوم دیگر ارث بری، پلی مورفیسم و abstraction می باشند.

کپسوله سازی در جاوا مکانیزمی برای پنهان کردن داده ها (متغیرها) و عملکرد کد در داده ها (توابع) با یکدیگر به صورت واحد می باشد. در عمل کپسوله سازی، متغیرهای یک کلاس، از کلاس های دیگر پنهان می مانند، و تنها برای توابع همان کلاس قابل دسترسی خواهند بود، به همین دلیل به کپسوله سازی، پنهان کردن داده ها (data hiding) نیز گفته میشود.

برای کپسوله سازی در جاوا:

مثال:

کد زیر نحوه کپسوله سازی را در جاوا نشان میدهد:

/* File name : EncapTest.java */ 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; } }

توابع عمومی setXXX() و getXXX() نقاط دسترسی به متغیرها برای کلاس EncapTest می باشند. به طور معمول، این توابع را getter و setter می نامند. بنابراین هر کلاسی که بخواهد به متغیرها دسترسی پیدا کند، باید از طریق این getter و setter ها به آن ها دسترسی داشته باشد.

نحوه دسترسی به متغیرهای کلاس EncapTest به شکل زیر است:

/* File name : RunEncap.java */ 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()); } }

خروجی برنامه:

Name : James Age : 20

مزایای استفاده از Encapsulation: