الاثنين، 23 فبراير 2015

Classes

class

البداية

لفهم الكلاس يجب اولا فهم مفهوم برمجة الكائنات(Object-oriented programming )

ماهو مفهوم برمجة الكائنات (Object-Oriented Programming) ؟

كل شي عبارة عن كائن (every things is an object )
وكل كائن يحتوي على
1- خصائص attributs(موصفات الكائن )
2- أفعال actions ( هي كل ما يستطيع القيام به الكائن)


قد تتسأل ماهو الكائن ؟
الكائن هو كل شي تقع عينك عليه مثل القلم والسيارة و الكتاب
لتوضح الفكرة أكثر لناخذ مثلا ..
مثلا السيارة , الخصائص لها اللون ,الشركة , النوع ,المودل
والافعال لها , تتحرك , تتوقف ,تدور وهكذا
مثال اخر :
"انا انت و الجميع نعتبر كائن حي يعيش على هذه لارض
لنا صفات خصائص مميزات افعال شخصيات خاصه بنا نتعامل معها وبفضل لله نعيش على هذه الارض
وأيضاً الجمادات تعتبر كذلك ..
كل هذا الكلام لكي نعرف او يكون عندنا نظره بمفهوم الكائن في العالم الحقيقي بعيد عن ﻷكواد ...
أذكر مثال بسيط آلا هو نحن ﻷنسان لنا خصائص مثل لأسم ، العمر ، الوزن ، الشكل وأيضاً لدينا افعال مثل الحركه ، التفكير ، ﻷكل ، وغيرها من لافعال العديده.
في عالم البرمجة الكائنيه لا يختلف مفهوم الكائن او object عن الكائن الحي في عالمنا الحقيقي .."


الى الان لم نتطرق الى اي شي له علاقة ب الكلاس ,وقد تتسال مافائدة هذا المفهوم وماعلاقته بالكلاس؟سستوضح الفكرة في الكلام القادم

الكلاس والكائن (class and object )

الكلاس والاوبجيك كلها عبارة عن كائن !  , الفرق بينهم هو أن الكلاس يكتب مرة واحدة والاوبجيك هو عبارة عن نسخة من هذا الكلاس, بمعنى أوضح اي اوبجيك يتم إنشاءه يجب أن يكون من الكلاس ,لا يمكن إنشاء أوبجيك بدون الكلاس


مثال :
هنا كل سيارة عبارة عن اوبجيك من الكلاس
يحتوي على على الخصائص والأفعال , لكن الاوبجيك يحتوي على المعلومات
كـ أوبجيك رقم 2
ستكون مثلا ,الشركة لها
bmw
اللون أحمر
المودل 2014
وهكذا , فكل أوبجيك تحتوي على نوع معين من السيارات


الخصائص والأفعال بلغة البرمجة ؟

الخصائص هي القيم (attribute is variables )
الأفعال هي الدوال (action is a functions )
مثال :
} class car
int model ; //variable
int company ;//variable
:public
void move()  {}//function
void stop ()  {} //function 
;{


شرح بسيط للتفريق بين class and objects



نقدر نقول ان الكلاس (الفئه ) ماهو إلا خارطه تحدد لل أوبجكت( الكائن ) طريق الرحله
بمعنى إننا  اذا اردنا أن نستخدم الكلاس فنحن نحتاج الى  كائن  لنستطيع الوصول إلى بيانات كلاس  التي تعتبر هي دوال والمتغيرات ...
اذا اخذنا مثال السياره واردنا ان نوصل إلى احدى دوال فإننا يلزمنا تعريف لل أوبجكت  عن طريق  الكلاس للوصول إلى رحلتنا الى داله التي نريد


مثال تعريف

Int main () {
Car car1 \\ car1 its object ,car is name of the class
car1 . Move ();\\ هنا وصلنا الى داله الحركه عن طريق الكائن


}

بمعنى إن الاوبجيك ماهو إلا طريقه للوصول إلى الكلاس للإستخدام ﻷشياء أو الدوال والمتغيرات داخله
والآن أصبح الكلاس والاوبجيك  عبارة عن مجموعة من المتغيرات والدوال
ويتم كتابة الاوبجيك بالطريقة التالية
;class name object name


الأن لماذا نستخدم الكلاس و مالفائدة منه ؟

لتفهم شي ما ,أعتقد انه يجب أن تفهم الغرض منه أولا
الغرض من الكلاس بشكل  مبسط هو لنفترض انك لديك شركة سيارات وكل سيارة بها خصائص وافعال متشابهة هل تتخيل انك هو سوف تعمل فنكشن لكل سيارة !! تخيل ان لديك الاف السيارات , تخيل صعوبة التعديل والبحث وفهم الكود ! لكن لو كان لديك كلاس ويجمع خصائص وافعال كل السيارات وفقط كل أوبجيك هو عبارة عن السيارة سوف يكون هذا أسهل بكثير ولذا الكلاس هو طريقة سهلة لتنظيم جميع الفنكشن التي لديك والفاريبلز
(class is easy way to group all your functions and variables  )





أمل 

اذا كان لديك إي سوال  او تعليق لا تتردد بالكتابة بالتعليقات 





الأحد، 25 يناير 2015

تعلم ال ++C

السلام عليكم ... 


هنا سـ إطرح بعض الروابط التي ساعدتني في تعلم لغة ال ++c




1-قناة thenewboston ... 
تشمل جميع مفاهيم ال ++c بشكل بسيط وممتع ولغة بسيطة .. 
اعتمدت عليها بشكل كلي بالفهم 

2-موقع The C++ Tutorial
هناك بعض المواضيع لم يتعمق فيها بالقناة الاول ,شرحت هنا أكثر .. 
اللغة المستخدمة بسيطة وسهلة الفهم وكذلك الفهم 
المواضيع التي درستها من هذا الموقع هي 
Operator overloading
Inheritanc
Virtual Functions

 3-كتاب ‫ ‫‪ من البداية إلى C++‬‬‫الكيانية‬ ‫البرمجة‬ ‫
لم اقر الكتاب كامل إنما فقط المواضيع التى لم أفهمها ... 

*نصحية 
أنصح لمن يتعلمها أن يتعلم المفهوم  اولا بشكل بسيط ثم يتعمق فيه  .. 




أمل 







الهدف من إنشاء المدونة

السلام عليكم ... 



الهدف 

ترددت كثيرا قبل القيام بهذي الخطوة وهي إنشاء مدونة لي , كنت دائم أحب تقديم المساعدة ومشاركة المعلومات التي أعرفها  , ولكن ماكان يمنعني سابقا هو التردد والتأجيل  وايضا معرفتي ب إن اسلوبي الكتابي ليس جيدا .... 
هدفي من إنشاء هذه المدونة هو مشاركة ماأعرفه وماتعلمته , دائما عندما أحل مشكلة ما بجهازي يأتي هذا السؤال بذهني ربما شخص اخر يملك هذه المشكلة ,لو كتبت عنه واستفاد شخص واحد فهذا رائع ! وعندما كنت ببدايتي بالعمل ب نظام لنكس كنت اسال سؤال عن كيفة عمل شي وكان الجواب أن اطبعه بالترنمال ! وكنت اقول لنفسي ماهي , والان اعتبره سؤال بغاية السخافة ,وكلما استفدت من مدونات او دورس كتبت قبل سنين تاتيني نفس الرغبة , الرغبة ب إفادة نفسي وغيري 



أخيرا

اسال الله ان يعنني ويوفقني ..
ساحاول الالتزام في كتابة مواضيع بشكل دائم .. 
أتقبل جميع إقتراحاتكم .. 
أمل