مشخصات مقاله
-
0
-
0.0
-
5080
-
0
-
0
آموزش Java-مخفی سازی داده ها در جاوا
Encapsulation یکی از چهار مفهوم اصلی در OOP می باشد. سه مفهوم دیگر عبارتند از inheritance, polymorphism و abstraction.
Encapsulation تکنیک خصوصی ساختن فیلدها در یک گروه و فراهم کردن امکان دسترسی به فیلدها از طریق متودهای عمومی می باشد. اگر یک فیلد خصوصی اعلام شود، در دسترس هیچ کس دیگر در خارج گروه قرار نمی گیرد. به این دلیل encapsulation با عنوان مخفی کردن داده (data hiding) نیز مطرح می شود.
Encapsulation به عنوان یک مرز محافظتی توصیف می شود که مانع دسترسی به کد و داده توسط دیگر کدهای تعریف شده در خارج گروه می شود. دسترسی به داده و کد به شدت توسط یک اینترفیس کنترل می شود.
مزیت مهم encapsulation توانایی اصلاح کد اجرا شده بدون شکستن کد دیگری که از کد ما استفاده می کنند، می باشد. با این ویژگی encapsulation به کد ما نگهداشت پذیری، انعطاف پذیری و گسترش پذیری می دهد.
مثال:
اجازه بدهید مثالی را بررسی کنیم که encapsulation را به تصویر می کشد:
/* 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;
}
}
متودهای عمومی نقاط دسترسی به فیلدهای این گروه از خارج دنیای جاوا می باشند. به طور طبیعی این متودها به عنوان دریافت کننده ها و تنظیم کننده ها مورد اشاره قرار می گیرند. بنابراین هر گروهی که می خواهد به متغیرها دسترسی داشته باشد، باید از طریق این دریافت کننده ها و تنظیم کننده ها به آنها دسترسی داشته باشد.
متغیر گروه 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:
· فیلدهای یک گروه می توانند read-only یا write-only شوند.
· یک گروه کنترل کلی بر آنچه در این فیلدها ذخیره شده، دارد.
· یوزرهای یک گروه نمی دانند که یک گروه چگونه داده های خود را ذخیره می کند. یک گروه می تواند نوع داده ی یک فیلد را تغییر دهد و یوزرهای گروه نیازی به تغییر هیچ کدی ندارند.