العودة   منتدى رياض الجنة - Riad Al-Ganah > الرياض التقنية > روضة الكورسات والدورات التقنية والعلمية > روضة دورات تقنية الـ .NET بلغاتها المختلفة > دورة .NET 2008 من منتدى فيجوال بيسك للعرب

دورة .NET 2008 من منتدى فيجوال بيسك للعرب مقدم الدورة : أحمد جمال ، نوع الدورة : كتابية مصحوبة بصور ، حالة الدورة : انتهت ، عدد الدروس : 80 درس . مستوى الدورة : من البداية للاحتراف .

إضافة رد

 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 02-19-2010, 07:56 PM
الصورة الرمزية khaledbelal
khaledbelal khaledbelal غير متواجد حالياً
مبرمج المنتدى
الادارة تكليف لا تشريف
 
تاريخ التسجيل: Oct 2009
العمر: 34
المشاركات: 3,606
افتراضي الدرس الثالث عشر : مقدمة إلى الفئات Classes دورة .net 2008

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

كما لاحظنا في دروسنا السابقة ، فإن البرنامج المنشأ تحت Console Application يحتوي على فئة واحدة مسماه باسم class Program تحتوي بداخلها على دوال ومتغيرات واجراءات وطرق ... في الواقع فالبنية الاساسية لأي برنامج يطبق مبادئ OOP هو الكلاس Class .

يمكن ان يحتوي البرنامج على عدة كلاسات ، ويمكن ان يحتوي الكلاس ايضاً على عدة كلاسات بداخله ، في حالة رغبتك في عمل Class منفصل يمكنك اضافة New Class من Project .

يتم تعريف الكلاس باستخدام الكلمة المحجوزة Class ومن ثم اسمه ، يتم تعريف مكوناته بين {} في السي شارب أو من بعد جملة التعريف حتى End Class في VB.net ، سنقوم بادراج كلاس جديد ونسميه باسم Person ، سنجد الكود التالي موجوداً بصورة افتراضية :

C#:

كود PHP:
namespace ConsoleApplication4
{
    class 
Person
    
{
    }

VB.net:
كود PHP:
 
Namespace ConsoleApplication4 
    
Class Person 
 
    End 
Class 
End Namespace 
الجزء الأول الذي يحدد ال namespace ضروري ، حيث يعني هذا ان جميع الكلاسات الموجودة تحت نفس ال namespace يمكنها رؤية بعضها الآخر ، لذا سنتمكن من التعامل مع الكلاس الجديد من خلال main الخاصة بنا في الكلاس الاساسي Program .


ابسط مكونات أي كلاس هي المتغيرات ، يمكننا مثلاً اضافة بيانات الاسم الأول والأخير والعمر داخل الكلاس بالشكل التالي :

C#:
كود PHP:
class Person
{
public 
string FirstName;
public 
string LastName;
public 
int Age;

VB.net:
كود PHP:
Class Person 
 
    
Public FirstName As String 
    
Public LastName As String 
    
Public Age As Integer 
End 
Class 
الآن يمكن تعريف عدة كائنات Objects من هذا الكلاس بالشكل التالي مثلاً :


C#:
كود PHP:
            Person Ahmed = new Person();
            
Ahmed.Age 15;
            
Ahmed.FirstName "Ahmed";
            
Ahmed.LastName "Gamal";
            
Person Ali = new Person();
            
Ali.Age 15;
            
Ali.FirstName "Ahmed";
            
Ali.LastName "Gamal"
VB.net:
كود PHP:
Dim Ahmed As New Person() 
Ahmed.Age 15 
Ahmed
.FirstName "Ahmed" 
Ahmed.LastName "Gamal" 
Dim Ali As New Person() 
Ali.Age 15 
Ali
.FirstName "Ahmed" 
Ali.LastName "Gamal" 
او يمكن تعريفهم على شكل مصفوفة بالشكل التالي :

c#:
كود PHP:
            Person [] MyEmpolyee = new Person[3];
MyEmpolyee[0] = new Person();
            
MyEmpolyee[0].FirstName "Ahmed";
            
MyEmpolyee[0].LastName "Gamal";
            
MyEmpolyee[0].Age 15
vb.net:
كود PHP:
Dim MyEmpolyee As Person() = New Person(2) {} 
MyEmpolyee(0) = New Person() 
MyEmpolyee(0).FirstName "Ahmed" 
MyEmpolyee(0).LastName "Gamal" 
MyEmpolyee(0).Age 15 
كما قلنا في حالة ال Struct ، فإن بامكاننا ايضاً تعريف الدوال داخل الكلاس ، سنقوم ببرمجة دالة تعيد لنا الاسم الكامل لشخص معين ، ستكون بالشكل التالي :


C#:
كود PHP:
        public string getFullName()
        {
            return 
FirstName LastName;
        } 
VB.net:
كود PHP:
Public Function getFullName() As String 
    
Return FirstName LastName 
End 
Function 

المشيدات Constructors :

عندما نقوم بتعريف new Person() فإن هذا يعني اننا نقوم بتشغيل الدالة ال Constructor ، وهي الدالة التي تعمل مع تشغيل اي نسخة من البرنامج ، افتراضياً تكون هذه الدالة خالية ويمكننا وضع بعض الاوامر فيها التي نحتاجها وقت انشاء نسخة ، لعرض مثلاً رسالة تخبرنا بانشاء نسخة جديدة من الكلاس ، في السي شارب يتم عمل دالة بنفس اسم الكلاس ، اما في فيجوال بيسك فيتم تسمية الدالة باسم New :

C#:

كود PHP:
public Person()
{
Console.WriteLine("new object");

Vb.net:
كود PHP:
Public Sub New() 
    
Console.WriteLine("new object"
End Sub 
يمكن ايضاً ان يستقبل ال Constructor بارميترس ، فمثلاً لجعل ال Constructor يستقبل الاسم الأول مع تعريف الاوبجكت الجديد ، فسيكون ذلك بالشكل التالي :


C#:
كود PHP:
        public Person(string userfirstname)
        {
            
FirstName userfirstname;
        } 
VB.net:
كود PHP:
Public Sub New(ByVal userfirstname As String
    
FirstName userfirstname 
End Sub 
ولعمل نسخة جديدة سيتوجب علينا كتابة الكود التالي :

C#:
كود PHP:
Person MyEmpolyee = new Person("ahmed"); 
VB.net:
كود PHP:
Dim MyEmpolyee As New Person("ahmed"
ال Destructor :

عكس ال Constructor ، يتم اطلاق هذا الحدث مع انهاء استخدام ال Object ، لاصدار صوت Beep مثلاً مع انهاء البرنامج :


C#:
كود PHP:
~Person()
{
Console.Beep();


نستفيد من ال Destructor في تنفيذ بعض العمليات قبل تدمير الكائن Object تماماً ، احياناً ما نحتاج إلى مسح جميع المتغيرات المرتبطة به في الذاكرة وهو الاستخدام الاشهر لهذا الحدث ، ايضاً يمكن استخدامه لتغيير العدادات مثلاً والتي تقوم بعد النسخ من كلاس معين .


توقيع : khaledbelal



(أَفَأَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا بَيَاتاً وَهُمْ نَآئِمُونَ {97} أَوَ أَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا ضُحًى وَهُمْ يَلْعَبُونَ {98}
أَفَأَمِنُواْ مَكْرَ اللّهِ فَلاَ يَأْمَنُ مَكْرَ اللّهِ إِلاَّ الْقَوْمُ الْخَاسِرُونَ {99}).
سورة الأعراف.

رد مع اقتباس
إضافة رد


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
الدرس الثالث والعشرون : ال Abstract دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-22-2010 01:57 PM
الدرس الثاني عشر : ال Nullable Types دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-18-2010 08:07 PM
الدرس الحادي عشر : الأنواع Value والأنواع Reference دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-18-2010 08:04 PM
الدرس العاشر : التراكيب Structure دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-18-2010 04:33 PM
الدرس التاسع : ال Enumeration دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-18-2010 04:27 PM

استضافة الحياة

الساعة الآن 11:01 AM.


Powered by vBulletin® v3.8.4, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. , TranZ By Almuhajir
النسخة الفضية
Ads Management Version 3.0.1 by Saeed Al-Atwi

SlamDesignzslamDesignzEdited by Riad Al-Ganah Team - جميع الحقوق محفوظة لشبكة رياض الجنة

Privacy Policy Valid XHTML 1.0 Transitional By SlamDesignz Valid CSS Transitional By SlamDesignz