هذا المقال من تأليفي و هو عن البرمجة كائنية التوجيه بشكل عام و التوارث بشكل خاص , باستخدام فيجوال بيسك .نيت :lol:
مقال عن البرمجة كائنية التوجيه
ممتاز أخي العزيز مقالة بسيطة تصل كل مبتدئ يود التعلم لمبدأ ال OOP
لكن بعض الأضافات البسيطة و هي :
الكلاس الذي يورث منه يسمى : Base Class
اما الذي يرث فيسمى ال : Derived Class
ثم انت لم تتطرق الى انواع تعريف المتغيرات في الكلاس يعني الفرق بين ال (Private ,Public,Friend) أعرف انها معروفة للأغلب لكن فقط من أجل جعل المقالة متكاملة :
Private : لن تستطيع الوصول الى المتغير المعلن من هذا النوع حتى لو كنت وارث الكلاس الموجود فيه
Public : طبعا تستطيع الوصول اليه من أي مكان أردت
Friend : تستطيع الوصول اليه فقط من خلال الكلاس الذي يرث الكلاس المعلن فيه المتغير من هذا النوع
----
بالنسبة للمتغيرات المعلنة Private يمكن الوصول اليها و تغيير قيمها لكن بطريقة غير مباشرة و هي عن طريق MyBase التي تمكنك من الوصول الى ال Constructor الخاص بال Base Class
مثال بسيط:
'Base Class Public Class SomeThing Private m_FirstName As String Private m_LastName As String Public Sub New(ByVal FirstName As String,ByVal LastName As String) m_FirstName=FirstName m_LastName=LastName End Sub End Class 'Derived Class Public Class SomeOne Inherits SomeThing Private m_Age As Byte Public Sub New(ByVal FirstName As String,ByVal LastName As String,ByVal Age As Byte) MyBase.New(FirstName,LastName) m_Age=Age End Sub End Class
اذا كما رأيتم هذا مثال بسيط يمكننا (بواسطة MyBase) من الوصول الى ال Constructor) و التعديل في المتغيرات الممررة اليه حتى لو كانت Private
و السلام عليكم
شكراً لك على ملاحظاتك
اقتباسثم انت لم تتطرق الى انواع تعريف المتغيرات في الكلاس يعني الفرق بين ال (Private ,Public,Friend) أعرف انها معروفة للأغلب لكن فقط من أجل جعل المقالة متكاملة
بالفعل لم أذكر الفرق بين أنواع المتغيرات Public, Private...
لأن المقال كما تعرف ليس عن البرمجة الكائنية التوجيه بشكل عام B)
اقتباساذا كما رأيتم هذا مثال بسيط يمكننا (بواسطة MyBase) من الوصول الى ال Constructor) و التعديل في المتغيرات الممررة اليه حتى لو كانت Privateو السلام عليكم
غيرها مرة أخرى... لا أعتقد أنك تستطيع ذلك بنفس الطريقة!
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
- برنامج شجرة عائلة يعمل على الشبكة، استعرض شجرة آدم عليه السلام إلى الرسول صلى الله عليه وسلم
- حزمة ObjectDatabase للتعامل مع قواعد البيانات بصورة شيئية التوجه
- حزمة قارئ الدوال والمعادلات الرياضية، لغة برمجة عربية بسيطة
- حزمة الشاشة الخفيفة للمبرمجين والمطورين
- برنامج المسبح على الجوال
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
ماذا تقصد أخي ابو مازن ؟؟؟
هل تستطيع أن تغير المتغيرات الخاصة بتلك الطريقة مرتين؟ مثلا:
Public Sub New(ByVal FirstName As String,ByVal LastName As String,ByVal Age As Byte)
MyBase.New(FirstName,LastName)
MyBase.New("Something Else",LastName) // ????? هل نستطيع؟
m_Age=Age
End Subتم تعديل هذه المشاركة بواسطة أبومازن في 2 أغسطس 2005 في 05:00
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
- برنامج شجرة عائلة يعمل على الشبكة، استعرض شجرة آدم عليه السلام إلى الرسول صلى الله عليه وسلم
- حزمة ObjectDatabase للتعامل مع قواعد البيانات بصورة شيئية التوجه
- حزمة قارئ الدوال والمعادلات الرياضية، لغة برمجة عربية بسيطة
- حزمة الشاشة الخفيفة للمبرمجين والمطورين
- برنامج المسبح على الجوال
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
شكرا يا MoaM
المقال جيد وتستحق التقدير
سبحان الله وبحمده سبحان الله العظيم
لا اله الا الله محمدا رسول الله
اللهم اغفر للمسلمين والمسلمات والمؤمنين والمؤمنات الاحياء منهم والاموات
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
حمل كريستال ريبورت 10 اربعه اصدارات

أخي ابو مازن هذا أمر طبيعي لأن ال Constructor لا ينادى الا مرة واحدة أصلا ... اما اذا كان قصدك أننا لن نستطيع الوصول الى المتغيرات المعلنة ك Private في ال Base Class فسأجيبك و أقول بلا نستطيع ذلك عن طريق MyBase كما قلت و قد تصل اليهم دون الحاجة الى مناداة ال Constructor و بل مباشرة هكذا :
MyBase.X=5 MyBase.Y=4
مع العلم أن ال X و ال Y خاصيتين معلنتان كبرايفت في ال Base Class
آسف فقد اطررت إلى تغيير مكان وجود المقال فأصبح :
http://www.geocities.com/moayad_mardini/ar...nheritance.html
و لكم الشكر :rolleyes:
إذا كانت x y هما private فلا يمكنك ذلك!! تستطيع ذلك إذا كانا protected أو friend أو package مع بعض الشروط الأخرى!!
كما في مثالك m_FirstName هو private ولا يمكنك الوصول إليها مباشرة!
هذا والله أعلم!
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
- برنامج شجرة عائلة يعمل على الشبكة، استعرض شجرة آدم عليه السلام إلى الرسول صلى الله عليه وسلم
- حزمة ObjectDatabase للتعامل مع قواعد البيانات بصورة شيئية التوجه
- حزمة قارئ الدوال والمعادلات الرياضية، لغة برمجة عربية بسيطة
- حزمة الشاشة الخفيفة للمبرمجين والمطورين
- برنامج المسبح على الجوال
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
يا أخي انا قلت لك أن تستطيع الوصول اليهم بمساعدة ال KeyWord .. MyBase و ليس مباشرة
!!!
جديدة علي،وغريبة أيضا!!
هل جربتها؟
'Base Class Public Class SomeThing Private m_FirstName As String Private m_LastName As String Public Sub New(ByVal FirstName As String,ByVal LastName As String) m_FirstName=FirstName m_LastName=LastName End Sub End Class 'Derived Class Public Class SomeOne Inherits SomeThing Private m_Age As Byte Public Sub New(ByVal FirstName As String,ByVal LastName As String,ByVal Age As Byte) MyBase.New(FirstName,LastName) MyBase.m_FirstName= "Strange Access Modifier" ' هذه تعتبر دخول مباشر! m_Age=Age End Sub End Class
ألا تصدر هذه الشفرة أية أخطاء؟!
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
- برنامج شجرة عائلة يعمل على الشبكة، استعرض شجرة آدم عليه السلام إلى الرسول صلى الله عليه وسلم
- حزمة ObjectDatabase للتعامل مع قواعد البيانات بصورة شيئية التوجه
- حزمة قارئ الدوال والمعادلات الرياضية، لغة برمجة عربية بسيطة
- حزمة الشاشة الخفيفة للمبرمجين والمطورين
- برنامج المسبح على الجوال
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
لا غريبة و لا اي شئ و انا فد جربتها مسبقا و تستطيع انت أيضا تجريبها او أحد من الاخوة و سترى انك تستطيع ذلك
أه أسف لم ألاحظ أنك تريد الدخول ال "m_FirstName" طبعا لن تستطيع ذلك لكن كما قلت لك تستطيع ذلك فقط عن طريق ال Constructor (MyBase.New(15,15))
بالمناسبة أصبح بالإمكان تحميل المقال بصيغة PDF من الرابط التالي
http://www.geocities.com/moayad_mardini/do...inheritance.zip
هذا الموضوع مغلق.

