البداية مع C# .NET ...درس (8):التغليف Encapsulation
صفحة 1 من اصل 1 • شاطر
البداية مع C# .NET ...درس (8):التغليف Encapsulation
بسم الله الرحمن الرحيم
اهلا وسهلا بكم درس اليوم عن التغليف Encapsulation حيث تعرف "بأنها عملية تضم عنصر واحد أو أكثر ضمن حزمة أو فئة معينة ليمنع الوصول إلى تفاصيل تلك العناصر من عدمة.
أو بمعنى اخر أن باستخدام عملية التغليف أو الـ Encapsulation ، فأنت تتحكم بذلك فيما يظهر لمستخدم الفئة وفيما لا يظهر من خصائص وطرق وأحداث. وما يظهر فهو يؤدي الوظيفة التي وُجِدَت من أجلها الفئة ( Class ) ، أما ما لا يظهر للمستخدم من أحداث وخصائص وطرق فهو يخدم ما يظهر مما سبق.
_ويتم تنفيذ التغليف باستخدام محددات الوصول access specifiers و الذى يحد الاطار ومدى مجال الرؤية اي الوصول للعنصر المطلوب...... و محددات الوصول المدعومة من سي شارب C#
محدد الوصول العام Public
محدد الوصول الخاص Private
محدد الوصول المحمي Protected
محدد الوصول الداخلي Internal
محدد الوصول الداخلي المحمي 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
يستخدم محدد الوصول الداخلي المحمي فقط من خلال فئات الابناء بحيث يكون فئة الاساسية وفئة الموروثة الابناء في نفس الاسمبلي
السنى- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 249
النقاط : 464
التقيم : 25
الجنس :
| |
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
أمس في 8:56 pm من طرف moslema_r
» شركة مكافحة حشرات في راس الخيمة
أمس في 8:34 pm من طرف moslema_r
» تطبيقIncogniton لإدارة ملفات تعريف متعددة للمتصفح
الأربعاء أبريل 24, 2024 3:51 pm من طرف زاكااا
» افضل شركة مكافحة النمل الابيض بالرياض
الإثنين أبريل 22, 2024 9:41 pm من طرف moslema_r
» Exemplary Сasual Dating - Verified Women
الخميس أبريل 18, 2024 9:18 pm من طرف wdqwd
» رش الدفان بالرياض
الخميس أبريل 18, 2024 7:11 pm من طرف moslema_r
» شركة تنظيف خزانات الشارقة
الخميس أبريل 18, 2024 6:57 pm من طرف moslema_r
» شركة مكافحة الفئران بالرياض
الإثنين أبريل 15, 2024 8:23 pm من طرف moslema_r
» افضل شركة كشف تسربات المياه بالباحة
الخميس أبريل 04, 2024 7:02 am من طرف gmalnagy
» ساعدوني وفهموني help me
الجمعة مارس 29, 2024 8:37 am من طرف linesoft