کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش Encapsulation در سی شارپ

دوره آموزش برنامه نویسی C#

کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.

آموزش Encapsulation در سی شارپ

Encapsulation به عنوان فرایند محصور کردن یک یا دو آیتم در یک پکیج فیزیک یا مستدل تعریف می شود. Encapsulation در متدولوژی برنامه نویسی آبجکت محور، از دسترسی به جزئیات اجرا جلوگیری می کند. Abstraction  و Encapsulation در برنامه نویسی آبجکت محور مشخصه های مرتبط به هم هستند. Abstraction اجازه می دهد ساخت اطلاعات مطرح قابل مشاهده باشد و encapsulation یک برنامه نویس را قادر می سازد تا سطح abstraction مورد تقاضای خود را اجرا کند. Encapsulation به وسیله استفاده از تصریح کننده ی اکسس (access specifiers) اجرا می شود. تصریح کننده ی اکسس حوزه و قابلیت رویت یک عضو گروه را تعریف می کند. C# از تصریح کننده های اکسس زیر حمایت می کند.

عمومی (Public )

خصوصی (Private)

محافظت شده (Protected)

درونی (Internal)

محافظت شده ی درونی (Protected internal )

تصریح کننده ی اکسس عمومی  (Public access specifier)

این برنامه به یک گروه اجازه می دهد تا متغیرها و ساختارهای عضو خود را به دیگر ساختارها و آبجکت ها تحمیل کند. هر عضو عمومی می تواند از بیرون گروه نیز قابل دسترس باشد.

مثال زیر این موضوع را توضیح می دهد.

using System;
        namespace RectangleApplication
        {
           
class Rectangle
    {
               
//member variables
       
        public double length;
               
public double width;
        ‎ ‎
               
public double GetArea()
                {
                   
return length * width;
                }
               
public void Display()
                {
                    Console.WriteLine(
"Length: {0}", length);
                    Console.WriteLine(
"Width: {0}", width);
                    Console.WriteLine(
"Area: {0}", GetArea());
                }
            }
//end class Rectangle   
       
    class ExecuteRectangle
    {
               
static void Main(string[] args)
                {
                    Rectangle r =
new Rectangle();
                    r.length =
4.5;
        r.width =
3.5
;
                    r.Display();
                    Console.ReadLine();
                }
            }
        }

 وقتی که برنامه ی بالا کامپایل و اجرا شود، نتیجه ی زیر حاصل می شود.

Length: 4.5
        Width: 3.5
        Area:
15.75

در مثال قبل طول و عرض متغیرهای عضو عمومی اعلام شده اند، بنابراین می توانند با استفاده از نمونه ای از گروه Rectangle به نام r، از طرف عملکرد Main() قابل دسترس باشند. عملکرد عضو Display()   و GetArea() هم می توانند مستقیما و بدون استفاده از نمونه های گروه،  به این متغیرها دسترسی داشته باشند.

 عملکرد عضو Display()   هم عمومی اعلام شده است و می تواند از طرف عملکرد Main() و با استفاده از نمونه ای ازگروه Rectangle به نام r قابل دسترس باشد.

 تصریح کننده ی اکسس خصوصی (private access specifier)

 این برنامه به یک گرو ه اجازه می دهد تا متغیرها و عملکردهای عضو خود را از دیگر عملکردها و آبجکت ها پنهان کند. تنها عملکردهای همان گروه می توانند به اعضای خصوصی دسترسی داشته باشند. حتی نمونه ای ازیک گروه نمی تواند به اعضای خصوصی آن دسترسی داشته باشد.

 مثال زیر این مسئله را توضیح می دهد.

using System;
        namespace RectangleApplication
        {
           
class Rectangle
    {
               
//member variables
       
        private double length;
               
private double width;
               
public void Acceptdetails()
                {
                    Console.WriteLine(
"Enter Length: ");
                    length = Convert.ToDouble(Console.ReadLine());
                    Console.WriteLine(
"Enter Width: ");
                    width = Convert.ToDouble(Console.ReadLine());
                }
               
public double GetArea()
                {
                   
return length * width;
                }
               
public void Display()
                {
                    Console.WriteLine(
"Length: {0}", length);
                    Console.WriteLine(
"Width: {0}", width);
                    Console.WriteLine(
"Area: {0}", GetArea());
                }
            }
//end class Rectangle   
       
    class ExecuteRectangle
    {
               
static void Main(string[] args)
                {
                    Rectangle r =
new
Rectangle();
                    r.Acceptdetails();
                    r.Display();
                    Console.ReadLine();
                }
            }
        }

 وقتی که برنامه ی بالا کمپایل و اجرا می شود نتیجه ی زیر حاصل می شود.

Enter Length:
       
4.4
        Enter Width:
       
3.3
        Length: 4.4
        Width: 3.3
        Area: 14.52

در مثال قبل طول  و عرض متغیرهای عضو خصوصی اعلام شده اند،  بنابراین نمی توانند از طرف عملکرد Main() قابل دسترسی باشند. عملکردهای عضو AcceptDtails() و Display() می توانند به این متغیرها دسترسی داشته باشند. از آنجایی که عملکرد عضو AcceptDetails() و Display() عمومی اعلام شده اند، با استفاده از نمونه ای از گروه Rectangle به نام r می توانند از طرف Main() قابل دسترسی باشند.

 تصریح کننده اکسس محافظت شده (protected access specifier)

 این برنامه به یک گروه کودک اجازه ی دسترسی به متغیرهای عضو و عملکردهای عضو گروه پایه ی خود می دهد. از این طریق به اجرای inheritance کمک می کند. در مورد این مبحث با جزئیات بیشتر در فصل inheritance بحث خواهیم کرد.

 تصریح کننده ی اکسس درونی (internal access specifier)

این برنامه اجازه می دهد  تا یک گروه متغیرهای عضو و عملکردهای عضو خود را به دیگر عملکردها و آبجکت ها در همگذاری کنونی تحمیل کند. به عبارت دیگر هر عضوی در این برنامه می تواند از طرف هر گروه یا روشی که در برنامه تعریف شده و عضو در آن تعریف شده، قابل دسترسی باشد.

 برنامه ی زیر این مطلب را توضیح می دهد.

using System;
        namespace RectangleApplication
        {
           
class Rectangle
    {
               
//member variables
       
        internal double length;
                internal
double width;
               
double GetArea()
                {
                   
return length * width;
                }
              
public void Display()
                {
                    Console.WriteLine(
"Length: {0}", length);
                    Console.WriteLine(
"Width: {0}", width);
                    Console.WriteLine(
"Area: {0}", GetArea());
                }
            }
//end class Rectangle   
       
    class ExecuteRectangle
    {
               
static void Main(string[] args)
                {
                    Rectangle r =
new Rectangle();
                    r.length =
4.5;
                    r.width =
3.5
;
                    r.Display();
                    Console.ReadLine();
                }
            }
        }

 وقتی که کد بالا کمپایل و اجرا می شود نتیجه زیر را در بر دارد.

Length: 4.5
        Width: 3.5
        Area: 15.75

 

تصریح کننده ی اکسس درونی محافظت شده  (protected internal access specifier)

 این برنامه به یک گروه اجازه می دهد تا متغیرها و عملکردهای عضو خود را از عملکردها و آبجکت های گروه دیگر پنهان کند، به جز یک گروه کودک در درون همان برنامه. این برنامه همچمین در هنگام اجرای inheritance  استفاده می شود.

 

1394/07/27 5397 1461
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...