الأربعاء، 6 نوفمبر 2013

أساسيات البرمجة سي شارب - ماهي الكبسلة أو التغليف؟ C# - Encapsulation

C# - Encapsulation ماهي الكبسلة أو التغليف؟

C# - Encapsulation ماهي الكبسلة أو التغليف؟ في سي شارب
C# - Encapsulation ماهي الكبسلة أو التغليف؟ في سي شارب

الكبسلة أو التغليف


الكبسلة هي عملية تغليف عنصر او مجموعة عناصر داخل حزمة فيزيائية أو منطقية.
الكبسلة والفئة المجردة هي تحدى مميزات اللغة البرمجية ذات البرمجة الشئية أو الموجهة بالكائنات
التجرير او المجردة تسمح بجعل المعلومات ذات الصلة ظاهريا .والكبسلة تمكن المبرمجة من التنفيذ على المستوى المرغوب.
الكبسلة يتم تنفيذهاباستخدام محددات الوصول access specifiers.محدد الوصول يحد الاطار ومدى مجال الرؤية اي الوصول للعنصر المطلوب.

محددات الوصول المدعومة من سي شارب c#

  1. محدد الوصول العام Public
  2. محدد الوصول الخاص Private
  3. محدد الوصول المحمي Protected
  4. محدد الوصول الداخلي Internal
  5. محدد الوصول الداخلي المحمي Protected internal

Public access specifier محدد الوصول العام

محدد الوصول العام يسمح للفئة بعرض أو اضهار المتغيرات والدوال للدوال الاخرى والكائنات.
أي عضو (الدوال أو المتغيرات )يمكن الوصول اليها من خارج الفئةوهذه يعرف بمدى الرؤية وهو عام.


مثال على محدد الوصول العام

using System;
namespace RectangleApplication
    {
      class Rectangle
       {
          //المتغيرات الاعضاء
          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());
        }
    }//نهاية الفئة
             class ExecuteRectangle
                {
                    static void Main(string[] args)
                    {
                        //انشاء كائن من الفئة السابقة
                        Rectangle r = new Rectangle();
   في حال كائن محدد الوصول للمتغير length خاص فان الكائن المنشاء لن يرى هذا  المتغير كما في المثال هذا //
                            r.length = 4.5;
                            r.width = 3.5;
                            r.Display();
                            Console.ReadLine();
                    }
               }
}

ناتج مثال على محدد الوصول العام

Length: 4.5
Width: 3.5
Area: 15.75

 محدد الوصول الخاص private access specifier

محدد الوصول الخاص يقوم باخفاء المتغيرات والدوال بحيث لا يسمح للوصول لها من خارج الفئة وايضا لا يسمح للكائن المنشأ من الفئة بالوصول اليها.

مثال على محدد الوصول الخاص

using System;
namespace RectangleApplication
     {
        class Rectangle
         {
            //المتغيرات
              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


محدد الوصول المحمي Protected Access Specifier

يسمح هذا المحدد لفئات الابناء child class بالوصول للمتغيرات والدوال الموجودة في الفئة الاساسية أو فئة الاب سيتم الشرح عن هذا المحدد في درس الوراثة.

محدد الوصول الداخلي 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 Rectang
  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

يستخدم محدد الوصول الداخلي المحمي فقط من خلال فئات الابناء بحيث يكون فئة الاساسية وفئة الموروثة الابناء في نفس الاسمبلي



اقراء أيضا

تعريف الدوال في البي اتش بي PHP


لمتابعتي
تويتر: @aalmahallawi
IT Help Desk,
SEO Arabic Expert ,PHP,C#,ASPX
Al alami st
gaza -jabaliaGaza Strip
Palestine
Email :ahmed.almahallawi@gmail.com
DOB: 05/10/1984

التسميات: