قائمة المدونات الإلكترونية

الخميس، 28 أبريل 2011

لغة C++ والبرمجة الكائنية

تدعم لغة C++ المقومات الثلاثة الرئيسية للبرمجة الكائنية، التغليف ( الكبسلة) وإخفاء البيانات، الوراثة وإعادة الاستعمال ثم تعددية الأشكال.


1- التغليف و إخفاء البيانات :

        تدعم C++ صفة التغليف وإخفاء البيانات من خلال إنشاء أنواع جديدة تسمى بالصفوف Classes ومن ثم يقوم الصف المحدد بالعمل ككائن مغلف تماما، ويستعمل كوحدة متكاملة بحيث يبقى عمله الداخلي مستورا ولا يحتاج المستعمل إلى فهم هذا العمل المخبأ، وينبغي أن يعرف كيفية استعماله فقط .


2- الوراثة و إعادة الاستعمال:

         توفر C++ دعما فعالا لإعادة الاستعمال من خلال الوراثة inheritance. ويمكن إعلان نموذج جديد يكون امتدادا لصف موجود واشتقاقا منه، و نسمي الصف الجديد صفا مشتقا أحيانا.

3- التعددية الشكلية:

         علي سبيل المثال في اللغة دالة الرسم واحدة، ولكن أطوارها متعددة بحسب نوع الفصيلة، وهذا هو أحد المبادئ الاقتصادية في لغة سي++ لتوفير الوقت والجهد، حيث استخدمت نفس الدالة لتحقيق مهام مختلفة أثناء عملية البرمجة.

16 التعليقات:

غير معرف يقول...

مزايا لغة c++ :

1- التجريدabstraction :
وهو عملية تحديد الخصائص والعمليات التي تنتمي لصنف معين وهي نوعان .::

أ- تجريد البيانات Data abstraction : وهي عملية التعرف على الخصائص المرتبطة بكائن معين .
ب- تجريد العمليات Methods abstraction: وهو عملية تحديد العمليات والإجراءات دون ذكر شيء عن كيفية أدائها .

2- التغليف ( الكبسلة )Encapsulation :
هي عملية تجميع كل الخصائص properties والطرق ( العمليات ) Methods في وحدة واحدة ( داخل غلاف واحد ) حيث لا يمكن الوصول إليها ( أي الخصائص والطرق ) إلا عن طريق الكائن .

3- إخفاء البيانات Data Hiding:.
وهي ميزة ناتجة عن كبسلة البيانات وتعني إضافة مستوى حماية معين على البيانات حتى نمنع وصول الخطأ إليها .

4- الوراثة Inhertance:.
وهي أن يرث صنف ما الخصائص والعمليات الموجودة في الصنف الآخر مما يساعد على إعادة الاستخدام للأصناف التي تم إنشاؤها من قبل المستخدم . .

التوثيق :
www.aoua.com › ... › M206‏

شيماء البيلى أحمد البيلى
الفرقة الرابعة
شعبة إعداد معلم الحاسب الالى

غير معرف يقول...

مميزات لغة C ++:

1- لغة عامة:

أى أنها تصلح لعمل برامج قواعد البيانات والرسومات والحسابات ونظم التشغيل.



2- لغة تركيبية:

يتألف البرنامج المكتوب بلغة C++ من دالة رئيسية وبداخلها مجموعة من الدوال الإجرائية، وكل دالة من هذه الدوال عبارة عن مجموعة من الأوامر.



3- لغة متنقلة:

يمكن للبرنامج المكتوب بهذه اللغة أن يعمل مع أكثر من جهاز وأنظمة تشغيل مختلفة.



4- لغة قياسية:

معظم مترجمات اللغة تتوافق مع مترجمات اللغات القياسية الأخرى.



5- لغة سريعة:

لأن أدوات اللغة تتعامل مع الآلة مباشرة مما يختصر وقت التنفيذ.





6- تتعامل على مستوى البت Bit:

حيث تستطيع أن تقرأ وتكتب وتغير وتقوم بكل العمليات التي على مستوى البت Bit، وكما نعرف فأن البت هو اصغر وحدة لقياس المعلومات داخل الكمبيوتر وأصغر وحدة تخزين في الذاكرة، وهو جزء من ثمانية أجزاء من البايت Byte.


التوثيق :
cairo-school.yoo7.com/t770-topic


شيماء البيلى أحمد البيلى
الفرقة الرابعة
شعبة إعداد معلم الحاسب الالى

ocean يقول...

Object-Oriented Programming ( OOP ) c : البرمجة الكائنية

public : عام

private : خاص

Object : كائن

Comment : تعليق

Address : عنوان

Casting : تحويل

Implicit Casting : تحويل ضمني

Explicit Casting : تحويل صريح

Overloading : إعادة تعريف

Operand : معامل

Instance : نسخة

Procedure : إجراء

Container : حاوية

Parameter : وسيط

Argument : وسيط مرسل

Array : مصفوفة

Operator : عامل

initialization : استهلالية

encapsulation : كبسلة

Polymorphism : تعدد الأوجه

inheritance : التوارث

Class : طبقة

Base class : الطبقة الأساسية

Derived class : الطبقة المشتقة

Derivation : اشتقاق

Constructor : الدالة البناءه , البناءه

Destructor : الدالة الهدامة , الهادمة

Method : أسلوب

Property : خاصية

Keyword : كلمة محجوزة

Virtual : دالة افتراضية

Pointer : المؤشر

Void Pointer : مؤشر عام

Visibility : قابلية الظهور

Accessibility : قابلية الوصول

Variable : متغير

Constant : الثابت


protected : محمي

Integer : عدد صحيح

Float, Double Number : عدد حقيقي

Reference : مرجع

Loop : حلقة

Template : قالب

Prototype : تصميم مبدئي

Function Signature : توقيع الدالة

Default Argument : وسيط افتراضي

Default Case : الحالة الافتراضية


كريم محمد عطيه

التوثيق:
http://forums.iraqcst.com/showthread.php?t=6612

غير معرف يقول...

بالطبع وجود هذه المقومات الثلاثة فى لغة c++ التى تم ذكرها ونريد ذكر مميزات لغة ال C
- تتميز لغة C بمجموعة من المزايا مثل :-

- لغة عامه : أى تصلح لعمل برامج قواعد البيانات والرسومات والحسابات ونظم التشغيل .

- لغة تركيبيةStructured Language : البرنامج المكتوب بلغة C عبارة عن دالة رئيسية تنادى مجموعة من الدوال الأخرى . وكل داله مجموعه من الأوامر .

- تتعامل على مستوى ( البت ) Bit manipulation : - حيث تستطيع أن تقرأ وتكتب وتغير وتقوم بعمليات على مستوى الـ Bit . حيث أن Bit هى اصغر وحدة لقياس المعلومات داخل الكمبيوتر وهى جزء من ثمانية أجزاء تعادل فى مجموعها حرف واحد byte .

- لغة متنقلة Portable : أى يمكن للبرنامج المكتوب بلغة C أن يعمل مع أكثر من جهاز مثل IBM وApple .
- لغة سريعة : - لأن أدوات اللغة تتعامل مع الآلة مما يختصر وقت التنفيذ .
- لغة قياسية : معظم مترجمات اللغة تتوافق مع اللغة القياسية ANSI C

تعليق :- إيمان نصر - الفرقة الرابعة

غير معرف يقول...

مميزات لغة السي:
-تعتبر لغة السي لغة سريعة :
وذلك لأنها تتحكم في المكونات المادية للحاسب مباشرة ، ولذلك تعد نسبيا أسرع تنفيذا من اللغات الأخرى.
-أنها لغة صالحة لأغراض متعددة ( تجارية - علمية - فنية - أدبية ).
-للغة السي صورة قياسية معتمدة:
وذلك لأن تطوير لغة السي تم في شركة واحدة ( Bell).
ونلاحظ أن الفرق بين نمط و آخر من أنماط لغة السي هي فروق بسيطة جدا ، بينما نجد أن الفروق كبيرة وكثيرة بين أشكال وصور لغة مثل لغة البيسك ، لأن كل شركة صانعة لأجهزة الحاسبات تضع تعليمات خاصة ومختلفة للغة ، وتختلف عما تضعه الشركات الأخرى.
-تعتبر لغة السي لغة غنية بالدوال:
وتوفر لغة السي للمبرمج عددا كبيرا من دوال الإدخال والإخراج ، والدوال الرياضية والحسابية، وهو الأمر الذي يسهل عملية بناء البرامج بها


-عيوب لغة السي

-أنها تعتمد على أسلوب المترجم والذي يقوم بترجمة البرنامج بأكمله دفعة واحدة ثم يقوم بعرض قائمة من الأخطاء بعكس لغة البيسك التي تعتمد على أسلوب المفسر حيث يتم تفسير البرنامج سطر سطر مما يسهل على المستخدم تصحيح الأخطاء بكل سهولة ويسر.
-هناك أخطاء لا يستطيع مترجم لغة السي أن يكتشفها.
-ملاحظة هامة: ان لغة C++ ليست هي لغة C مع التشابه الكبير لأوامر ودوال اللغتين


تصنيف اخر للمميزات:

هي إحدى لغات المستوى العالي High level language التي تستخدم في كثير من التطبيقات وأهمها أنها تدخل في بناء نظم التشغيل وتعتبر امتداد إلى لغة c.

==============================

مزايا لغة C++:-

توجد العديد من المزايا للغة C++ نذكر منها:

السرعة Speed: تعتبر لغة C++ سريعة في إنجاز المهام.


الحجم Size : تحتوي على مجموعة ضخمة من الدوال جعلت منها لغة كبيرة نسبياً ولحل هذه المشكلة تم توزيع هذه الدوال على مجموعة من المكتبات المتخصصة ، كل مكتبة لها اسم معين وتحتوي على دوال معينة.

مثال:- المكتبة الرياضية math تحتوي على كافة الدوال الرياضية


مثل : sin,cos,tan…….

وبالتالي يحتاج البرنامج الواحد إلى مكتبات معينة يتم استخدامها في الوصول إلى الحل ولذلك أصبحت صغيرة الحجم


التوثيق:

http://www.coderg.com/vb/showthread.php?p=2555

http://www.damasgate.com/vb/t57914/



تعليق:

سالى احمد الدالى

حياه اسماعيل يقول...

C++ (لغة برمجة) :

(تنطق: سي بلس بلس) هي لغة برمجة متعددة الاستخدام، وتعتبر لغة برمجة كائنية. يعتبرها الكثيرون اللغة الأفضل لتصميم التطبيقات ذات الواجهة الكبيرة وللتعامل مع البنية الصلبة للحاسب، وذلك لسرعتها في التنفيذ والتي لا تختلف كثيرًا عن السي، وفي المقابل توفر تعامل أكثر تعقيدًا مع البيانات. لغة السي++ من لغات البرمجة العالية المستوى وفي نفس الوقت قريبة من لغة التجميع (بالإنجليزية: Assembly‏) ذات المستوى النخفض، كما أنها تعد لغة برمجة إجرائية (يمكن كتابة برنامج يحتوي على إجراءات وتوابع فقط) كما تعد لغة غرضية التوجه (البرنامج المكتوب عبارة عن أصناف وتستخدم الخواص المتاحة من كبسلة وتعددية الأشكال والوراثة والتركيب).

غير معرف يقول...

السلام عليكم و رحمة الله و بركاته
أيضا من مميزات لغة السي:
1-تعتبر لغة السي لغة سريعة :
وذلك لأنها تتحكم في المكونات المادية للحاسب مباشرة ، ولذلك تعد نسبيا أسرع تنفيذا من اللغات الأخرى.

2-أنها لغة صالحة لأغراض متعددة ( تجارية - علمية - فنية - أدبية ).

3-للغة السي صورة قياسية معتمدة:
وذلك لأن تطوير لغة السي تم في شركة واحدة ( Bell ).
ونلاحظ أن الفرق بين نمط و آخر من أنماط لغة السي هي فروق بسيطة جدا ، بينما نجد أن الفروق كبيرة وكثيرة بين أشكال وصور لغة مثل لغة البيسك ، لأن كل شركة صانعة لأجهزة الحاسبات تضع تعليمات خاصة ومختلفة للغة ، وتختلف عما تضعه الشركات الأخرى.

4-تعتبر لغة السي لغة غنية بالدوال:
وتوفر لغة السي للمبرمج عددا كبيرا من دوال الإدخال والإخراج ، والدوال الرياضية والحسابية، وهو الأمر الذي يسهل عملية بناء البرامج بها

التوثيق
www.damasgate.com

مني مصطفي عرابي
الفرقة الرابعة

غير معرف يقول...

أتفق مع زميلتي شيماء في أن من مميزات لغة السي أيضا أنها :-

1 - لغة عامة:
أى أنها تصلح لعمل برامج قواعد البيانات والرسومات والحسابات ونظم التشغيل.

2- لغة تركيبية:
يتألف البرنامج المكتوب بلغة C++ من دالة رئيسية وبداخلها مجموعة من الدوال الإجرائية، وكل دالة من هذه الدوال عبارة عن مجموعة من الأوامر.

3- لغة متنقلة:
يمكن للبرنامج المكتوب بهذه اللغة أن يعمل مع أكثر من جهاز وأنظمة تشغيل مختلفة.

4- لغة قياسية:
معظم مترجمات اللغة تتوافق مع مترجمات اللغات القياسية الأخرى.

5- لغة سريعة:
لأن أدوات اللغة تتعامل مع الآلة مباشرة مما يختصر وقت التنفيذ.

6- تتعامل على مستوى البت Bit:
حيث تستطيع أن تقرأ وتكتب وتغير وتقوم بكل العمليات التي على مستوى البت Bit، وكما نعرف فأن البت هو اصغر وحدة لقياس المعلومات داخل الكمبيوتر وأصغر وحدة تخزين في الذاكرة، وهو جزء من ثمانية أجزاء من البايت Byte.

مني مصطفي عرابي

غير معرف يقول...

OOP(Object Orientation Programming) البرمجة كائنية المنحى
" البرمجة الموجهه بالكائنات " هي ذلك المفهوم الذي بزغ الى عالم البرمجة ليغير طريقة البرمجة الاجرائية القديمة ذات الدوال والمناهج الضيقة الأفق الى سعة ورحابة الكائنات ,,,

فإن سي++ لغة متعددة الاستخدامات، إلا أنها مناسبة لبرامج أنظمة التشغيل. وتكتب معظم أجزاء أنظمة التشغيل وبرامج مساعدة أنظمة التشغيل باستخدام سي++ ومنها نظام جنو/لينكس.
:تصنيف الكائنات إلى صنفين

* كائنات نشطة (حية) Animate Objects: وهي التي نحس فيها فنجد لها حركة ونشاط.
* كائنات غير نشطة (غير حية) Inanimate Objects: هي التي لا نلاحظ لها نشاط أو حركة أو وقع أينما وجدت
وجميع الكائنات بصنفيها لها:

1. خصائص Attribute مثل: الحجم، اللون، الوزن، الشكل...ألخ.
2. سلوك Behavior فمثلاً: الطفل (كائن) يبكي، وينام، ويمشي، ويأكل (سلوكيات)
.
البرمجة الشيئية أو الكائنية Object Oriented Programming:

عند حديثنا عن البرمجة الشيئية، نجمل الحديث في كلمتين: الوراثة وتعدد الأشكال
Inheritance & Polymorphism،
وهما من التقنيات الفعّالة للتعامل مع البرمجيات المعقدّة:
لا تزال لغة سي++ تواصل تطورها. فهناك نسخة جديدة من سي++ قيد التطوير سميت مبدئيًا بـ
C++0x(تنطق سي بلس بلس أُوْهْ إكس)[1]،
وقد صدرت في مارس 2009، يشير العمل الحالي بأنّ سي++ سيواصل الاستفادة من طبيعته متعددة المثال. boost مجموعة تعمل للاستفادة إلى أبعد الحدود من سي++ في شكله الحالي. هم يتوسّعون كثيرا في سي++ من حيث الوظيفية والقدرات وينصحون أيضا لجنة معايير سي++ التي تعمل فيها الميزّات حسنا والتي تحتاج التحسين.

الاسم: عزيزة سلطان
الفرقة الرابعة
قسم اعداد معلم الحاسب الالى

غير معرف يقول...

++ و البرمجة الكائنية :-

تدعم لغة C++ المقومات الأربعة للبرمجة الكائنية . التغليف أو الكبسلة ، إخفاء البيانات ، الوراثة و تعددية الأشكال .

1- التغليف و إخفاء البيانات :-

تدعم C++ صفة التغليف و إخفاء البيانات عبر إنشاء أنواع جديدة تسمى بالصفوف Classes و من ثم يقوم الصف المحدد بالعمل ككائن مغلف تماما و يستعمل كوحدة متكاملة بحيث يبقى عمله الداخلي مستورا و لا يحتاج المستعمل إلى فهم هذا العمل المخبأ ، ينبغي أن يعرف كيفية استعماله فقط .

2- الوراثة و إعادة الاستعمال :-

توفر C++ دعما فعالا لإعادة الاستعمال من خلال الوراثة inheritance. يمكن إعلان نموذج جديد يكون امتدادا لصف موجود و اشتقاقا منه . و نسمي الصف الجديد صفا مشتقا أحيانا .

3- التعددية الشكلية :-

إن دالة الرسم واحدة ، و لكن أطوارها متعددة بحسب نوع الفصيلة . و هذا هو أحد المبادئ الاقتصادية في لغة سي++ لتوفير الوقت و الجهد : استخدام نفس الدالة لتحقيق مهام مختلفة .

أحمد نصر الدين السيد
http://www.yemenna.com/vb/archive/index.php/t-69.html

غير معرف يقول...

عيوب هذا الأسلوب : البرمجة الهيكلية .::
1- صعوبة فصل البيانات على العمليات .
2- إعادة إنشاء الحلول وعدة إعادة استخدامها .
المفاهيم الأساسية للبرمجة الشيئية :.

1- الكائن Object :

عبارة عن وحدة تحوي مجموعة من البيانات تسمي ( خصائص ) properties أو صفات ومعرفة عليها مجموعة من العمليات .
2- الصنف Class :
الكائنات ذات الخصائص والأفعال المشتركة بحاجة لآن تجمع مع بعضها البعض حتى يمكن استخدامها في برنامج ما.
وبالتالي فإن الصنف : عبارة عن مجموعة من الكائنات التي تشترك في الخصائص والعمليات
مزايا البرمجة الشيئية :. (Features of opp)

1- التجريدabstraction : وهو عملية تحديد الخصائص والعمليات التي تنتمي لصنف معين وهي نوعان .::

أ- تجريد البيانات Data abstraction : وهي عملية التعرف على الخصائص المرتبطة بكائن معين .
ب- تجريد العمليات Methods abstraction: وهو عملية تحديد العمليات والإجراءات دون ذكر شيء عن كيفية أدائها .

2- التغليف ( الكبسلة )Encapsulation : هي عملية تجميع كل الخصائص properties والطرق ( العمليات ) Methods في وحدة واحدة ( داخل غلاف واحد ) حيث لا يمكن الوصول إليها ( أي الخصائص والطرق ) إلا عن طريق الكائن .

3- إخفاء البيانات Data Hiding:. وهي ميزة ناتجة عن كبسلة البيانات وتعني إضافة مستوى حماية معين على البيانات حتى نمنع وصول الخطأ إليها .

4- الوراثة Inhertance:. وهي أن يرث صنف ما الخصائص والعمليات الموجودة في الصنف الآخر مما يساعد على إعادة الاستخدام للأصناف التي تم إنشاؤها من قبل المستخدم .
- تعدد الأشكال ( الأوجه ) polymorfisme: تسمح ميزة تعدد الأشكال لنفس الدالة أن تتعرف بصورة مختلفة في أصناف مختلفة .
ويمكن عمل ذلك بـ الوراثة مع تعدد الأشكال .
ايمان الامام على الشبلى
قسم اعداد معلم الحاسب الالى
الفرقه الرابعه

غير معرف يقول...

البرمجة الشيئية Object Oriented Programming تقوم بنمذجة Modeling كائنات العالم الحقيقي في برنامج نظير software counterpart. هذا البرنامج يحمل إيجابيات العلاقات بين الفئات classes relationships حيث أن أي كائن من أي فئة يحمل جيمع مميزات وصفات characteristics هذه الفئة أو بالأحرى يرثها لأنه ممثل لفئته. كما أن الفئات الجديدة -تسمى فئة فرعية subclass- ترث صفات الفئات التي أُنتجت وتكونت منها -تسمى الفئة الأم superclass- كما يرث الطفل جينات أبويه. وهذه الفئة الجديدة والتي تعتبر subclass، من الممكن أن تكون superclass لفئات جديدة أخرى ينشئها المبرمج.
الـOOP كذلك تقوم باحتواء البيانات (Data (attributes والطرق (Methods (behavior في حزمة package هي ما نطلق عليه "كائنات Objects"؛ حيث أن بيانات وطرق أي كائن ترتبط ببعضها ارتباط وثيق. هذا الكائن يتميّز بخاصية التخفي Information Hiding نعني بالتخفي هنا أنه بإمكان الكائنات الاتصال والتعامل مع بعضها البعض مع عدم معرفة أحدها كيف تكوّن الآخر! أي أن تفاصيل التكوين هي المخفيّة حتى عن الكائنات نفسها؛ فمن المؤكد أننا نعرف كيف نقود السيارة بكفاءة عالية دون معرفة تفاصيل هندستها. تسمى هذه الخاصية في البرمجة بـAbstraction أي تجريد البيانات.
برامج الجافا جميعها قائمة على برمجة المبرمج لمجموعة فئات خاصة به تسمى user-defined classes باستخدام الفئات والمميزات التي توفرها اللغة ومن ثم استخدام هذه الفئات جميعها أو بعضها في برامجه
حيث أن كل فئة تحتوي على بيانات data ومجموعة دوال functions تقوم بتشكيل هذه البيانات، تسمى البيانات في فئات الجافا بـ: instance variable أو data member. ويطلق على الدوال اسم الطرق methods. فأي طلب لأي فئة معرّفة في اللغة كأنواع البيانات مثل int يسمى"متغير variable"، بينما طلب أي فئة من الفئات التي عرّفها المبرمج user-defined يسمى "كائن object".
البرمجة الشيئية أو الكائنية Object Oriented Programming:
عند حديثنا عن البرمجة الشيئية، نجمل الحديث في كلمتين: الوراثة وتعدد الأشكال Inheritance & Polymorphism، وهما من التقنيات الفعّالة للتعامل مع البرمجيات المعقدّة:
• فالوراثة inheritance هي شكل للبرامج software المعدّة للاستعمال مع الفئات classes الحديثة والتي أنشئت من فئات موجودة مسبقاً وأخذت عنها خصائصها وسلوكها وأضافت إليها القدرات التي نحتاج إليها في هذه الفئة الجديدة. الوراثة ماذا تعني عملياً؟! تعني بالضبط ما الذي تم وراثته و كيف يمكن التعديل عليه وما الذي لا يمكن وراثته -يتضح ذلك بالأمثلة-. هذه الخاصية توفر الكثير من الوقت للمبرمج وتقطع عنه أشواطاً في تطوير برنامجه.
• وتعدد الأشكال polymorphism يسمح لنا بكتابة برنامجنا في صورة قابلة لتغيير واسع النطاق؛ سواء كان التغيير لفئات موجودة مسبقاً أو تغيير مستقبلي لإنتاج برامج جديدة. هذه الخاصية تسهل علينا توسيع قدرات نظامنا.
وكما ذكرنا في الأعلى أن الفئات الجديدة -تسمى فئة فرعية subclass- ترث صفات الفئات التي أُنتجت وتكونت منها -تسمى الفئة الأم superclass- كما يرث الطفل جينات أبويه. وهذه الفئة الجديدة والتي تعتبر subclass، من الممكن أن تكون superclass لفئات جديدة أخرى ينشئها المبرمج. وهكذا تمتد لدينا سلسلة من الوراثة بين الفئات extends، يحكمها قانون "الوراثة المفردة Single Inheritance" حيث ينص هذا القانون على:
تنشأ أي فئة فرعية من فئة أم واحدة، فالجافا لا تدعم التوارث المتعدد multiple inheritance كالسي++ ولكنها تدعم مفهوم الواجهات Interfaces، فنظام الواجهات يساعد الجافا على تحقيق فائدة التوارث المتعدد مع عدم وجود الأخطاء المترابطة الناتجة عن هذا التوارث المتعدد!
تذكر أن أي كائن ينتمي إلى فئة فرعية فهو ينتمي إلى الفئة الأم لهذه الفئة الفرعية ويحمل خصائصهما وسلوكهما.
وبعد هذه المقدمة وهذا التوصيف لعالم الـOOP نلاحظ أن جُلّ التركيز في هذا النوع من البرمجة يقع على الـفئات Classes، فالمبرمج يستخدم الفئات المبنية مسبقاً في اللغة مع الفئات التي يبنيها هو كي ينتج برنامجاً بالجافا، ربما يفسر هذا الاسم OOP
الاسم: صفاء لطفي السري
الفرقة: الرابعة
الشعبة : حاسب إلى

غير معرف يقول...

اولا: البرمجة الشيئية Object Oriented Programming تقوم بنمذجة Modeling كائنات العالم الحقيقي في برنامج نظير software counterpart. هذا البرنامج يحمل إيجابيات العلاقات بين الفئات classes relationships حيث أن أي كائن من أي فئة يحمل جيمع مميزات وصفات characteristics هذه الفئة أو بالأحرى يرثها لأنه ممثل لفئته. كما أن الفئات الجديدة -تسمى فئة فرعية subclass- ترث صفات الفئات التي أُنتجت وتكونت منها -تسمى الفئة الأم superclass- كما يرث الطفل جينات أبويه.
وهذه الفئة الجديدة والتي تعتبر subclass، من الممكن أن تكون superclass لفئات جديدة أخرى ينشئها المبرمج.
ثانيا: الـOOP كذلك تقوم باحتواء البيانات (Data (attributes والطرق (Methods (behavior في حزمة package هي ما نطلق عليه "كائنات Objects"؛ حيث أن بيانات وطرق أي كائن ترتبط ببعضها ارتباط وثيق. هذا الكائن يتميّز بخاصية التخفي Information Hiding نعني بالتخفي هنا أنه بإمكان الكائنات الاتصال والتعامل مع بعضها البعض مع عدم معرفة أحدها كيف تكوّن الآخر! أي أن تفاصيل التكوين هي المخفيّة حتى عن الكائنات نفسها؛ فمن المؤكد أننا نعرف كيف نقود السيارة بكفاءة عالية دون معرفة تفاصيل هندستها.
ملحوظة: تسمى هذه الخاصية في البرمجة بـAbstraction أي تجريد البيانات.
برامج الجافا جميعها قائمة على برمجة المبرمج لمجموعة فئات خاصة به تسمى user-defined classes باستخدام الفئات والمميزات التي توفرها اللغة
ومن ثم استخدام هذه الفئات جميعها أو بعضها في برامجه
حيث أن كل فئة تحتوي على بيانات data ومجموعة دوال functions تقوم بتشكيل هذه البيانات، تسمى البيانات في فئات الجافا بـ: instance variable أو data member.
ويطلق على الدوال اسم الطرق methods. فأي طلب لأي فئة معرّفة في اللغة كأنواع البيانات مثل int يسمى"متغير variable"، بينما طلب أي فئة من الفئات التي عرّفها المبرمج user-defined يسمى "كائن object".
ثالثا: البرمجة الشيئية أو الكائنية Object Oriented Programming:
عند حديثنا عن البرمجة الشيئية، نجمل الحديث في كلمتين: الوراثة وتعدد الأشكال Inheritance & Polymorphism، وهما من التقنيات الفعّالة للتعامل مع البرمجيات المعقدّة:
• فالوراثة inheritance هي شكل للبرامج software المعدّة للاستعمال مع _الفئات classes الحديثة والتي أنشئت من فئات موجودة مسبقاً وأخذت عنها خصائصها وسلوكها وأضافت إليها القدرات التي نحتاج إليها في هذه الفئة الجديدة. الوراثة ماذا تعني عملياً؟! تعني بالضبط ما الذي تم وراثته و كيف يمكن التعديل عليه وما الذي لا يمكن وراثته -يتضح ذلك بالأمثلة-. هذه الخاصية توفر الكثير من الوقت للمبرمج وتقطع عنه أشواطاً في تطوير برنامجه.
• وتعدد الأشكال polymorphism يسمح لنا بكتابة برنامجنا في صورة قابلة لتغيير واسع النطاق؛ سواء كان التغيير لفئات موجودة مسبقاً أو تغيير مستقبلي لإنتاج برامج جديدة. هذه الخاصية تسهل علينا توسيع قدرات نظامنا.
وكما ذكرنا في الأعلى أن الفئات الجديدة -تسمى فئة فرعية subclass- ترث صفات الفئات التي أُنتجت وتكونت منها -تسمى الفئة الأم superclass- كما يرث الطفل جينات أبويه.
وهذه الفئة الجديدة والتي تعتبر subclass، من الممكن أن تكون superclass لفئات جديدة أخرى ينشئها المبرمج. وهكذا تمتد لدينا سلسلة من الوراثة بين الفئات extends، يحكمها قانون "الوراثة المفردة Single Inheritance" حيث ينص هذا القانون على:
تنشأ أي فئة فرعية من فئة أم واحدة، فالجافا لا تدعم التوارث المتعدد multiple inheritance كالسي++ ولكنها تدعم مفهوم الواجهات Interfaces، فنظام الواجهات يساعد الجافا على تحقيق فائدة التوارث المتعدد مع عدم وجود الأخطاء المترابطة الناتجة عن هذا التوارث المتعدد!
تذكر أن أي كائن ينتمي إلى فئة فرعية فهو ينتمي إلى الفئة الأم لهذه الفئة الفرعية ويحمل خصائصهما وسلوكهما.
وبعد هذه المقدمة وهذا التوصيف لعالم الـOOP نلاحظ أن جُلّ التركيز في هذا النوع من البرمجة يقع على الـفئات Classes، فالمبرمج يستخدم الفئات المبنية مسبقاً في اللغة مع الفئات التي يبنيها هو كي ينتج برنامجاً بالجافا، ربما يفسر هذا الاسم OOP
الاسم: صفاء لطفي السري
الفرقة: الرابعة
الشعبة : حاسب إلى

غير معرف يقول...

البرمجه الهيكليه:-
ببساطه هى تقسيم البرنامج الى وظائف او دوال يمكن استدعائها فى اى جزء من البرنامج ويمكن ان تكون متداخله بمعنى اننا نستدعى داله او اكثر داخل داله أخرى
وتعتبر البرمجه الهيكليه هى المرحله المتوسطه بين البرمجه التسلسليه القديمه والبرمجه كائنية التوجه فى اللغات الحديثه
تخيل ان البرنامج التى تريد كتابته مقسم الى وظائف مترابطه تستدعى بعضها بعضا
وهذا تعريف مبسط لها

مميزات استخدام البرمجة الهيكلية:-
1)سهولة التعلم و الفهم و اكتشاف الاخطاء
2)سهولة التعديل و القابلية للتطوير
3)سهولة عمل ملفات تنفيذية

اهداف البرمجة الهيكلية:-
1)انتاج اكواد اسرع فى الترجمة واكثر قابلية للتطوير
2)تصحيح الاخطاء داخل البرنامج

تشكيلات البرمجة الهيكلية:-
1)شرطية
2)تكراية
3)متتالية

ماذا يعنى بالبرمجة الهيكلية النمطية:-
يتم تقسيم البرامج الى وحدات نمطية وحدة نمطية عظمى
ووحدات نمطية ثانوية

تعليق :-
هبة احمد السعيد امين
الفرقة الرابعة

غير معرف يقول...

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

السؤال الآن لماذا نحتاج للبرمجة الكائنية؟
البرمجة الكائنية ظهرت مع زيادة التعقيد فى استخدام البرمجة...و كانت ضرورة حتمية بسبب وجوب التعامل مع مدخلات
البرنامج على انه عدة اجزاء كل جزء يجب التعامل معه على حده
الخوارزميات و دورها فى ترتيب خطوات البرنامج ترتيبا منطقيا يجعل خطوة يجب ان تتم قبل اختها جعل من الضرورى التعامل مع المتغير كأجزاء و ليس كوحده واحدة.
فأنا عندما اقوم بعملية مثل الـ"تجديد" لكائن مثل الـ "غرفة" لا اقوم بهذا مرة واحدة فى خطوة واحدة بل أقوم اولا بتغيير طلاء الحوائط (تغيير خاصية اللون) تغيير الستائر (تغيير خاصية الستائر) و اخيرا تغيير الأثاث (خاصية الأثاث) و الحقيقة انه جزء يعتبر كائن قائم بذاته فالستائر مثلا عند صناعتها يتم اختيار نوع القماش اولا ثم تحديد التصميم ثم القص ثم عمل الستائر.
Class & Object
العلاقة بين الـ Class و Object مثل العلاقة بين العام و الخاص
فعندما اقول جهاز كمبيوتر فهذا يعنى اى جهاز سواء جهازى او جهاز زميلتى فى العمل او جهاز شقيقى او اى جهاز
كمبيوتر آخر لكن عندما احدد و اقول انا اقصد جهاز الكمبيوتر الخاص بى فى العمل فهذا هو الـ object
و مثال آخر ايضا الانسان لو اعتبرنا ان كلمة بشر هى التعميم اى انها الـ class فالتخصيص يكون هذا الشخص الذى يكتب لكم المقال الآن.

طبعا كل class قابل لان استخلص منه كائنات عديدة كمثل مثل البشر كل يوم يولد انسان جديد له خصائص مختلفة من حيث لون البشرة و لون الشعر....الخ

لكن فى لغة مثل لغة السى شارب ليست كل الـ Classes قابلة لان استخلص منها Object
لو اخذنا مثال واقعى عن هذا القمر الذى يدور حول الأرض لو اعتبرت انه يمثل Class فإننى عندما اذكر كلمة "قمر" ينصرف ذهن الجمع الى هذا القمر الوحيد الذى يدور حول كوكب الأرض.
إلا ان هذا النوع من الـ Classes الغير قابلة لعمل object منها وظيفتها الاساسية هى توريث بعض الخصائص لـ Classes اخرى متولدة عنها Derived ,و الوراثة Derivation هذه مصطلح آخر سيتم شرحه قريبا.
و كمثال واقعى ايضا عن الوراثة نستطيع ان نقول ان الـ Class قمر – كما فى المثال السابق - يمكن ان يتولد عنه Class آخر هو "قمر صناعى " يأخذ عنه بعض صفاته كأن يكون له مدار ثابت حول الأرض مثل القمر الطبيعى.
User-defined Types
عندما عرفنا الـ Built- in types قلنا انها الأنواع الأساسية التى توفرها لغات الدوت نت وكان هذا يعنى انه توجد امكانية لاستخلاص انواع اخرى يقوم المستخدم يتعريفها بأن يقوم بتعريف الـ class و يصبح هذا هو النوع
كمثال واقعى لذلك لو قام الكتاب بتألف كتاب ما فإن هذا الكتاب يعتبر Class و يتم تنقيح بعضها و زيادة فصول و حذف فصول اخرى فى كل طبعة فإن هذه الطبعة تسمى Object تم استخلاصه creating an instance
الثوثيق
http://knol.google.com
الاسم:حنان محمد ايو عيسي
الفرقة: الرابعة

Unknown يقول...

السلام عليكم لمذا يااخت حنان في لغة السى شارب ليست كل الـ Classes قابلة لان استخلص منها Object

إرسال تعليق