الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الدرس الثالث، مبتدئين:keywords في جافا

مغلق
بدأه سين ميم في 28 أبريل 2002 · 6 رد · 4,031 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

اليكم الكلمات المفتاحية التي تشغل الجافا وهي في اكثرها نفس كلمات لغات C و ++C اضافة الى كلمات جديدة خاصة بلغة جافا.

abstract    default    if            private      this
	boolean     do         implements    protected    throw
	break       double     import        public       throws
	byte        else       instanceof    return       transient
	case        extends    int           short        try
	catch       final      interface     static       void
	char        finally    long          strictfp     volatile
	class       float      native        super        while
	const       for        new           switch
	continue    goto       package       synchronized

وسوف نضيف شرح لكل كلمة مع مشاركة الاخوة المتطوعين

تم تعديل هذه المشاركة بواسطة ORWA في 29 يناير 2005 في 14:47

#2

1- محددات الصلاحية:

public, protected, private, abstract, static, final, native, strictfp, synchronized

1--1: public

امكانية استدعاء الصف class, الواجهة interface من خارج حزمته التي بني فيها.

امكانية استدعاء القيمة value من خارج الصف class او الواجهة interface التي وجدت فيها.

عند اعلان قيمة value او صف class يكون لديك المحددات اعلاه لتختار واحد منها او اكثر لتكون محددة لقدرة الوصول الى هذه القيمة او الصف من خارج هذا الصف او من خارج الحزمة التي تعمل عليها.

ليكن لدينا صف class ماذا يعني تطبيق ما ذكرنا عليه؟؟ اذا كان public يعني ذلك امكانية استدعائه واستخدام دواله من خارج حزمته التي بني فيها

1--2: private

حصر امكانية استدعاء الصف class ، الواجهة interface في الحزمة التي وجد فها فقط

حصر امكانية استدعاء القيمة value في الصف class ، الواجهة interface الذي وجدت فيه فقط.

1--3: protected

حصر استدعاء واستخدام الصف class، الواجهة interface في الصف الذي يشتق extends من هذا ا الصف او الذي يوظفimplements هذه الواجهة

ايضا تتوفر القيمة التي سبقت بهذا المحدد فقط لتلك الصفوف classes والواجهات التي اشتقت او وظفت هذا الصف او الواجهة.

#3

بسم الله الرحمن الرحيم

شكراً لك أخي على الدروس المفيده .. الله يعطيك العافيه...

ممكن اخي ان تشرح لي محدد الصالحيه synchronized ...

وإن ستطعت ان تعطيني مثال للتوضيح...

وجزاك الله خيراً...:)

رجب النتشة

Rajab Natshah

#4

جزاك الله خير

#5
اقتباس
الرسالة الأصلية كتبت بواسطة رجب النتشة

بسم الله الرحمن الرحيم

شكراً لك أخي على الدروس المفيده .. الله يعطيك العافيه...

ممكن اخي ان تشرح لي محدد الصالحيه synchronized ...

وإن ستطعت ان تعطيني مثال للتوضيح...

وجزاك الله خيراً...:)

synchronized وهو محدد الصلاحية كما تسموه أو Access modifier

أولا معنى الكلمة "تزامني"

أحيانا البرامج تكون Multi-Threaded أي أن هناك أكثر من عملية تجري في نفس الوقت ...

بالنسبة لـ synchronized فهي تستخدم للدوال methods حيث أن الدالة يكون فيها عمليات منطقية أو حسابية ...

فقد تستخدم كل Thread موارد معينة ...

بالنسبة للدالة المحددة بـsynchronized عندما تستخدمها أي واحدة من Threads اللي شغاله فأنها وحدها فقط تستطيع الزصزل إليها حتى تنتهي من عملها ثم بعد ذلك يسمح للThread الأخرة باستعمالها ...

مثال : أنا وأنت نبغى نحجز رحلة للقاهرة ... الأماكن المتوفرة على الرحلة 3 مقاعد كل واحد فينا عند مكتب مختلف للخطوط الجوية ...

عملية ارسال بياناتي تعتبر Thread عمليتك أنت تعتبر Thread أخرى ...

من اللي يوصل أول ؟؟ هو اللي يحصل على المقاعد أول...

تصور أن عملية حجز كل نقعد تأخذ ثلاث ثواني ... وأنا أبحجز الثلاثة كلها ...

لي ولأخوي و صديقي ... رحت أنا قدمت الطلب عن طريق الحاسب وبعدي بثانية تقدم طلبك أنت ...

لو ما فيه synchronized ...

أنا أبحجز مقعد أول بعد ثانيتين يجي طلبك أنت ويآخذ المقعد الثاني بعدها بثانية طلبي بحجز مقعد لأخوي هذه ثلاث مقاعد بعد ثلاث ثواني صديقي ما يبقاله مقعد رغم أني أنا واقف عند الكاشيير وقايل له ثلاث مقاعد والمتوفر ذلك الوقت ثلاثة ...

مع وجود synchronized ... يخلص طلبي أول بعدين يمرر طلبك ...

مثال معقد شوي ... لأن استخدام synchronized متقدم نوعا ما

#6

بسم الله الرحمن الرحيم

شكراً لك أخي 2pac .. وجزاك الله خيراً....

مثالك مفهوم وواضح جداً...

بالنسبة لي...

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

و الله يعطيك العافية...:)

رجب النتشة

Rajab Natshah

#7

I am sorry cause I am using a computer that doesn't support Arabic now :(

listen up

you can NOT declare a class as Synchronized..

only methods are allowed to be Synchronized

hmmmm

let us suppose that you have a method from which you read a file... you also may change the content of that file ok

Now ....

You know how to create threads *If you don't TELL ME* okay

Let's us suppose that this method is in a Class....

now you creates 4 Threads let's say T1,T2,T3 & T4

OKAY

now the 4 thread will use the run() method in that Threadable class.....

from run() you may call your method that deals with da file say DoFile()..... okay

Now , If the method is NOTT declared as Synchronised the four threads can use and invoke the method DoFile at the same time.....

THIS IS DANGEROUS:confused:

let us say that our method is something like that

DoFile(int x , int y)

}

int z = x * 13;

read value of j from the file

int g = y* j + 22;

j = z/g

..... some code to store 'j' in a file or data base or whatever

{

If the Threads are allowed to access this method mutually i.e. at the same time , then ...

a case like this could happen

T1 has written a value j into the file

T2 read the modified value and is about to excute the line

"int g = y* j + 22"

just before T2 excute this step T3 modified j which yeilds unwanted results

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

and like that

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

the idea is not clear unless I show you a life example

When Synchronization is enforced, Only one thread can access the methos at a time

T1 access the method finish its invokation then T2 comes when the method is free

THATS IT

IF YOU DID'T UNDERSTAND YET

E-MAIL ME

s996251@kfupm.edu.sa

or my hotmail

addola@hotmail.com

your brother Adel

AGAIN SORRY , MY PC DOESN'T SUPPORT ARABIC WRITING AND I FEEL LAZY TO CUT AND PASTE :)

هذا الموضوع مغلق.

مواضيع مشابهة