الرئيسية > السؤال
السؤال
ما معنى كلمة data abstraction ?-لمن يفهم برمجة الحاسووووب-
السلام عليكم و رحمة الله و بركاته..
ما معنى كلمة data abstraction مع التوضيح؟

و شكرررررا مقدماً...
السلام عليكم
التعليم والتدريب | Google إجابات | الكمبيوتر والإنترنت | الطعام والشراب 1‏/3‏/2011 تم النشر بواسطة ALLAH's Lover.
الإجابات
1 من 3
data encapsulation غليف البيانات ---------- تعدد الأشكال ((polymorphism

Data encapsulation, sometimes referred to as data hiding, is the mechanism whereby the implementation details of a class are kept hidden from the user. تغليف البيانات ، التي يشار إليها أحيانا إخفاء البيانات ، هو آلية يتم بموجبها أخفي تفاصيل تنفيذ فئة من المستخدم. The user can only perform a restricted set of operations on the hidden members of the class by executing special functions commonly called methods . ويمكن للمستخدم فقط تنفيذ مجموعة محدودة من العمليات على أعضاء المخفية من الطبقة عن طريق تنفيذ المهام الخاصة أساليب يسمى بشكل شائع. The actions performed by the methods are determined by the designer of the class, who must be careful not to make the methods either overly flexible or too restrictive. وتحدد الإجراءات التي تقوم بها وسائل من قبل المصمم للفئة ، الذي يجب أن تحرص على عدم جعل أساليب مرنة إما مفرطة أو ضيقة للغاية. This idea of hiding the details away from the user and providing a restricted, clearly defined interface is the underlying theme behind the concept of an abstract data type . هذه الفكرة من الاختباء بعيدا عن تفاصيل المستخدم وتوفير مقيدة ، واجهة واضحة المعالم هو الموضوع الأساسي وراء مفهوم نوع بيانات مجردة.

The advantage of using data encapsulation comes when the implementation of the class changes but the interface remains the same. وميزة استخدام البيانات التغليف عندما يأتي تنفيذ التغييرات واجهة الطبقة لكن لا يزال هو نفسه. For example, to create a stack class which can contain integers, the designer may choose to implement it with an array, which is hidden from the user of the class. على سبيل المثال ، لإنشاء مكدس الطبقة التي يمكن أن تحتوي على أعداد صحيحة ، قد يختار مصمم على تنفيذه مع مجموعة ، التي كلها من المستخدم للفئة. The designer then writes the push() and pop() methods which puts integers into the array and removes them from the array respectively. المصمم ثم يكتب دفع () والبوب () الذي يضع أساليب صحيحة في مجموعة ويزيل لهم من الصفيف على التوالي. These methods are made accessible to the user. وتتكون هذه الأساليب للوصول إلى المستخدم. Should an attempt be made by the user to access the array directly, a compile time error will result. يجب محاولة بذل من قبل المستخدم للوصول إلى مجموعة مباشرة ، ترجمة خطأ وقت سيؤدي. Now, should the designer decide to change the stack's implementation to a linked list, the array can simply be replaced with a linked list and the push() and pop() methods rewritten so that they manipulate the linked list instead of the array. الآن ، ينبغي للمصمم تقرر تغيير المكدس للتنفيذ إلى قائمة ربط يمكن ببساطة ، مجموعة استبداله مع قائمة مرتبطة ودفع () والبوب () أساليب إعادة كتابة بحيث التلاعب في قائمة مرتبطة بدلا من الصفيف. The code which the user has written to manipulate the stack is still valid because it was not given direct access to the array to begin with. رمز التي بعثت للمستخدم التعامل مع مكدس لا يزال صالحا لأن هذا الأمر لم نعطه الوصول المباشر إلى مجموعة لتبدأ.

The concept of data encapsulation is supported in C++ through the use of the public , protected and private keywords which are placed in the declaration of the class. بدعم من البيانات التغليف هو مفهوم في سي + + من خلال استخدام وحمايتها وخاصة الكلمات الرئيسية العامة التي يتم وضعها في إعلان الفئة. Anything in the class placed after the public keyword is accessible to all the users of the class; elements placed after the protected keyword are accessible only to the methods of the class or classes derived from that class; elements placed after the private keyword are accessible only to the methods of the class. أي شيء في فئة وضعت بعد الكلمة العامة هي في متناول جميع مستخدمي الفئة ؛ العناصر وضعت بعد الكلمة المحمية هي فقط للوصول إلى أساليب الفئة أو الفئات المشتقة من تلك الفئة ؛ العناصر وضعت بعد الكلمة خاصة يمكن الوصول إليها فقط إلى أساليب الفئة.

As a convention, calling a method of an object instantiated from a class is commonly referred to as sending a message to that object. باعتبارها الاتفاقية ، استدعاء أسلوب كائن مثيل من فئة ويشار إلى إرسال كرسالة لهذا الكائن.
7‏/3‏/2011 تم النشر بواسطة مسلم يتعلم منكم (Khaled Dandachli).
2 من 3
إن المعاني التي سألت عنها تدخل ضمن مفاهيم البرمجة كائنية التوجه (Object-oriented programming (OOP.
Data abstraction: وتعني عملية تجريد المعطيات من إجراءات المعالجة الخاصة بها، وعدم ذكر التفاصيل المكونة للمعطيات.

Data encapsulation: تغليف المعطيات:
يتم استعمال هذا المصطلح للتعبير عن مفهوم عملية الجمع بين المعطيات و إجراءات المعالجة الخاصة بها دون إضهار تفاصيل التنفيذ implementation، وذلك في هيكلة تسمى Class، حيث لا يسمح لمستخدم Class بالوصول إلى تفاصيل تنفيذ الإجراءات إلا عن طريق المداخل المحددة، من خلال التعرف على أسماء الوظائف (Fonction) دون معرفة محتوياتها بالتفصيل.

Polymorphism: أصل الكلمة يوناني، وتعني: "التحول المتعدد" وهو أحد أهم مفاهيم وتقنيات البرمجة كائنية التوجه. وهو يعني إمكانية تحول الوظائف (Methods). وينقسم إلى ثلاثة أنواع:

1. Overloading: يعني بالعربية "تجاوز الحمولة" أو "الإثقال". وهو السماح بتسمية وظائف Functions - Methods بنفس الاسم في فئات Class مختلفة. مثلا: إذا كامن لديك Class Triangle، و Class Square، فإن كلا منهما يمكن أن تحتوي على Method باسم () Show، بحيث تختلف مدخلات كل method عن الأخرى وبالتأكيد المحتوى أيضا. فيصبح من السهل كتابة ما يلي:
()triangle.Show
square.Show
مثال آخر:
5+6=11
و
poly+morphism= plymorhism
فنقول أن: + قد تم إثقاله (Overrloded) بحيث يقوم بجمع الأعداد إلى بعضها إذا كان كل طرفيه أعداد، ويلصق Concat الكلمات ببعضها إذا كان كل أطرافه كلمات. فهو يقوم بعمليتين مختلفتين، دون الحاجة من المبرمج إلى تغيير الرمز أو تحديد الوظيفة، لا، Compiler يستولى اختيار الوظيفة المناسبة حسب أطراف العلية كما قلنا.

2. template: ويعني السماح بإنشاء أكثر من Method بنفس الاسم مع اختلاف في العوامل Parameters:
مثال:
الوظيفة (int addition(int, int : تسمح بجمع عددين صحيحين.
الوظيفة (float addition(float, float: تسمح بجمع عددين حقيقيين.
الوظيفة (string addition(string, string: تسمح بجمع عبارتين نصيتين أي إلصاقهما كي تصبحا عبارة نصية واحدة.

============
سأشرح النوع الثالث لاحقا بإذن الله... مضطر حاليا.
13‏/3‏/2011 تم النشر بواسطة phenix40 (Farid Ferhati).
3 من 3
السلام عليكم
بسم الله
المصطلحات دي عشان تفهمها لازم تعرف حاجة مهمة اسمها
Object Oriented Programming
وبتختصر ب
OOP
وينطق الاختصار ب اووب
تمام

طيب معني الاوبجيكت اورينتد ببساطه شديدة وبدون تفاصيل يعني لما تيحي تعمل البرانامج  وعاوز تقسمه لاجزاء كود اصغر بتقسمه علي الشكل اللي بيحاكي الواقع في عالمنا اللي احنا عايشين فيه
بمعني عاوز تعمل برنامج فيه موظفين يبقي حتقسم البرنامج لبشر مثلا و انواعهم مهندس ومدير وكده و تقسم جزء تاني مثلا الالات وتقسمها لالات طبع مثلا والات كتابة وكده يعني
يعني بتقسم البرنامج زي الواقع

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

data encapsulation

مقصود بيها التغليف للبيانات
بمعني انت لو عندك كلاس وده مجموعة كود مكتوبه مع بعضها ف فايل بطريقة معينة و بتسمي كلاس
لو عندك بقي الكلاس ده وعامل جواه فانكشانز و اتربيوتس و عاوز كلاسات تانية متشوفهوش
فانت بتخبي الحاجات دي عشان باقي الكلاسيز يعني باقي الكود ف البرنامج ميشوفهاش
يعني عارف كبسوله الدوا ؟
جواها الدوا بودرة لكن انت مش بتشغل دماغك بالبودرة اللي جوه و كل اللي يهمك هو انك تبلع الكبسوله وتخف
فكده الكبسوله مخبية الدوا
كذلك الكود ف الكلاس بتاعك لو عاوز تخبيه ميتشافش غير من كلاسات معينه او ميتشافش غير جوا الكلاس الي انت بتكتب فيه
بتعمل كده
وده عشان تعمله بستعمل حاجة اسمها
private , Package , Public
وبالكلمات دي بتحدد القوة اللي مخبي بيها الكود وهل مستخبي للكلاسات كلها وميتشفش غير ف الحالي اللي بتكتب فيه ولا مستخبي من انهي كلاسات بالظبط
============
polymorphism
ودي معناها بالعربي التعددية وبيشبهوها بالحرباية عشان الحرباية بتغير لون جلدها وكده
وبتنقسم لحاجتين
overloading
overriding

و ال
overloading
هو انك تعمل كذا فانكشان عندك ف نفس الكلاس كلهم بنفس الاسم بس بتغير مثلا البراميتار لست بتاعهم
يعني بتغير نوع الداتاتيب اللي بيتبعت ف البراميتار
او تسيبهم بنفس الاسم و تغير ترتيب البراميتار لست
او تغير عدد الارجومنت ف البراميتار لست
مثال
في الجافا لو كتبت
System.out.println( x  )
x
ممكن تبقي رقم انتجار
او حرف كاراكتار
او بوليان ترو وفولس

يعني كذا عملية ممكن تتم عن طريق نفس الاسم للفانكشان واللي اسمها ف الجافا او لغات الاوبجيكت اورينتد ميثود
print()
واللي اتغير البراميتار اللي هو الاكس
وده بيسهل بدل ما تعمل  واحدة تطبع حروف وواحده تطبع ارقام
لا
اعمل كذا واحده بنفس الاسم وغير البراميتار اللي يدخل

overriding
يعني ف الوراثه الانهيرتانس
لما كلاس بيورث كلاس ممكن الكلاس الي جديد اللي ورث يعني واللي بيسموه الساب كلاس
supclass
وبيسموا الاب الاصلي سوبر كلاس
superclass

و لما الساب كلاس يورث من السوبار بتاعه ابوه يعني
ممكن يعمل فانكشان ميثود يعني بنفس الاسم اللي موجود عند ابوه السوبار
بس يغير المهمة اللي بتقوم بيها يعني بيغير ال
implementation
بتاعها
يعني لو ف الاصل ف السوبار كلاس هي بتطبع ارقام من واحد لمية
ممكن تيجي تعمل فانكشان او ميثود بنفس الاسم ف السب كلاس الجديد بس بتطبع من واحد لمتين

لو ناديت علي الميثود دي باوبجيكت من السوبار كلاس حيطبع من واحد لمية
ولو ناديت عليها باوبجيكت من السب كلاس الابن حيطبع من واحد لمتين
ولاحظ الاتنين ميثود ف الاب و الابن بنفس الاسم لكن الاداء مختلف


ده ببساطه شديدة
و اتمني من الله اني اكون وصلت ولو جزء بسيط من المعلومة
:)
6‏/12‏/2011 تم النشر بواسطة ahmaadaadel.
قد يهمك أيضًا
ما هو المقصود ب Data link layer
أريد شرح مفصل لعمل شبكة في شركة جديدة لديها 16 موظف ، مع العلم أنهم يريدون عمل monitoring data و remote access !!!
2. What would be an obvious disadvantage of building an application in C++ that stores and queries data in MS Access?
I need a free data recovery software for Mac please
تسجيل الدخول
عرض إجابات Google في:: Mobile | كلاسيكي
©2014 Google - سياسة الخصوصية - مساعدة