47
م س ب له ل ا ن م ح ر ل ا م ي ح ر ل ا ه ي س دو ا اف ج1

دوسية جافا 1

Embed Size (px)

DESCRIPTION

دوسية جافا 1 من تأليف أ.علي خالد العزة المدرس في جامعة فلسطين الأهلية هذه الدوسية تلخص لغة الجافا بمفاهيم الكائنات الموجهة بلغة بسيطة و مفهومة

Citation preview

Page 1: دوسية جافا 1

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

1 جافا دوسية

العزة أ. إعداد: خالد عليالجامعية األهلية فلسطين كلية

: الكتروني [email protected]بريد

Page 2: دوسية جافا 1

% الجافا؟: أوًال هي ما

تستخدم برمجة لغة عن عبارة هي تعتمد OOP(Object Oriented Programming) مفاهيمالجافا و ( خواص عن عبارة هو و األوبجكت على المفاهيم سلوك( statesهذه لو (behavior)و عمل أننامثال نريد

. سلوكه و الضوء خواص من نحتاج ماذا لمعرفة نحتاج لضوء اوبجكت-<–الضوء اللون< صفة

>- يضيء-< سلوك الضوءال في تنضم كلها و اإلنتربتر و كومبايلر الجافا على Java Virtual Machineتستخدم تنزيله يجب و

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

:% : ثانيا الجافا برمجة في أساسية قواعد

من : أساسي بشكل الجافا برنامج يتكونMethods عند تنفذ الجافا بلغة مكتوبة العمليات من مجموعة عن عبارة هي في استدعائهاو يقابلها و

ال Functions ال Cلغة أيضا هناك يحتوي Classو و الجافا بلغة المكتوب البرنامج عن عبارة هو والبرنامج . مكونات على

مثال:

class HelloJava{public static void main)String[] args({

System.out.println)" جافا في بكم ;)"مرحبا}

}

الميثود على يحتوي رئيسي كالس هناك دائما لكن و الواحد البرنامج كالسفي من أكتر كتابة نستطيعو )Main Method(الرئيسي الرئيسي الكالس إال الرئيسي الميثود الكالسعلى من أي يحتوي ال و

القائد يسمى حيث آخر اسم الرئيسي مثل انطالقاألنه )Driver Method(للميثود البرنامج ينفذ منهلغة .Cفي

حرفمن مالحظة : أول يكون أن ألن اسميجب كبير بحرف أيضا يبدأ منه قسم كل و T كبيرا الكالس. : االسم مثل متالصق األول : HelloJavaيكون :Helloالقسم الثاني القسم ال Java و أسماء بينما تبدأ

الميثود مثال كبيرة بأحرف تبدأ الباقية أقسامها تقون لكن و كبيرة بأحرف األول getMaxالميثود القسمget الثاني القسم لكن و بحرفصغير .Maxيبدأ اإلسم لفهم ذلك و كبير بحرف يبدأ

System.out.println)( : حيث الناتج لطباعة :إذايستخدم استخدمنا println. سطر : ينزل ثم يطبع

print. سطر : ينزل أن بدون يطبع

الجافا - في تلقائيا% المعرفة المتغيرات : ) Built in Types ( أنواع

: البرمجة لغات كبقية الجافا في للمتغيرات معرفة أنواع عدة هناك

: كالتالي المتغير تعريف يكون

Page 3: دوسية جافا 1

المتغير نوع المتغير اسممثال char x

: جافا في المعرفة المتغيرات أنواع

Integers ( الحقيقية : ( األعداد

كتابته كيفيةالبرمجة عند

الحجم( بيت(

األرقام مدىقيمة أقل قيمة أكبر

Byte = 8 bits.تعريف مالحظة: كتابة longعند ) lيجب أل( :حرف , مثال الرقم بعد

long x = 1234321l ;

Float ( العشرية : ( األرقام

الكتابة كيفيةالتعريف عند

( بيت ( الحجم المدى

float 32 بعد 6-7 أرقامالفاصلة

double 64 بعد 15 رقمالفاصلة

كتابة مالحظة : يجب فلوت تعريف :fعند , مثال الرقم بعد

float x = 1.23f;مثل : خاصة قيم العشرية لألرقام كذلك هناك

PositiveInfinite : + ∞NegativeInfinite: ─ ∞Nan )not a number(: 1/0) معرف .)غير

Boolean ( خطأ او صح قيمتين له جبري :( تعبير

boolean Size : 1bit Values : true , false.

Page 4: دوسية جافا 1

مثال:boolean x = true;

Characters:

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

. الرموز و لألحرفchar Size: 16bit

تستخدم : مالحظة ألنها الجافا في نريدها لغة بأي الكتابة الترميزو Ascii code نستطيع .Unicode الموحد

مثال:char x = 'A'; char x = 65;char x='س';char x='#';

الحرف 65 .Aيقابله كود األسكي فيالرمز أيضا أو 'n'\هناك سطر انزل يعني هذا األسكي enterو في يقابله و

رقم 13كودOperators ( المعامالت ) :

+ , - , * , / , ++ , --قيمة ++ مالحظة : للمتغير تزيد 1يعني

قيمة-- المتغير قيمة من 1تنقصمثال:

int x =4; x++;x=5النتيجة:

Relations ( عالقات ) : السؤال : == عند تستخدم و تساويالسؤال : =! عند أيضا تستخدم و تساوي ًالتساوي : =< أو من أكبر>=: تساوي أو من أقلأكبر :<أصغر : <

Boolean Operators:السؤال عند تستخدم و&& : and|| : or

Page 5: دوسية جافا 1

^^ : xor! : not

Bitwise Operators:

المنطقية العمليات في تستخدم و&: and| : or^ : xor~ : not

More Complicated :

اليمين : << الى إزاحةاليسار : << الى إزاحةالقسمة : % باقي

مثال:int x;x = 4%3;

x= 1الخروج :

Automatic Conversion ( التلقائي : ( التحويل

واحد نوع الى المختلفة العمليات نتائج في المتغيرات انواع شتى نحويل الجافا تستطيع. األحقية حسب خاصة قوانين حسب

مثال:

1.7 + 99 = 100.7double + int = double int double بالعملية قام ثمdouble النتيجة

بالترتيب العملية في المتغيرات انواع وجود عند األولويات تكون حيثالتالي:

العملية -1 في كان الى doubleإذا األخرى المتغيرات تكون doubleتحول النتيجة ونوع .doubleمن

العملية -2 في كان الى floatإذا األخرى المتغيرات من floatتحول تكون النتيجة و .floatنوع

Page 6: دوسية جافا 1

العملية -3 في كان الى longإذا األخرى المتغيرات نوع longتحول من تكون النتيجة وlong.

الى -4 المتغيرات كل تحول السابقة االنواع من أي العملية في تكن لم و intإذانوع من تكون .intالنتيجة

Casting:. بالعملية القيام بعد نختارها نحن قيمة ارجاع عملية هي

على :castingمثالint x = 2345;short y = (short)x;

int لكن 4حجمه و ل بايت 2حجمه shortبايت يأخذ من y 2لذلك بايتيأخذ xيمين اشارة هناك كانت اذا و بالذاكرة الممثلة القيمة من

اإلشارة لذلك باإلضافة

X

اإلشارة Y

Strings ( المتسلسالت ) :

األحرف من مجموعة عن عبارة )هي أحرف( + يكون رموز و واحدة كقطعة تستخدمكالتالي " " : بين الرموز مجموعة بوضع تعريفها

String s = "Java 2";أوString s;s = "جافا";

ال حرف يكون حيث النوع هذا في كبير األول الحرف يكون أن مراعاة .Sيجب كبير

نوع مالحظة: من للمتغيرات جمل أو أحرف اضافة عملية استخدام .String يمكن

مثال:

Page 7: دوسية جافا 1

String s = "Java ";int x=2;s+= "2"; أو s = s+"2"; أو s+= '2'; أو s+=x;

"s="java 2الخروج:

يستخدم برنامج كتابة :Stringمثالpublic class Triangle{

public static void main)String[] args({String s= "*";for )int i=0;i<=6;i++({

System.out.println)s(;s+="*";

}}

}

Note: s+ = "*" تعادل s = s + "*";: البرنامج خروج

****************************

ب الخاصة الميثود : String بعض

int length)( : ٍال طول :Stringيرجع مثال

String s = "Core Java 2";int l = s.length)(;

l=11الخروج :

char charAt)int i( :الموقع في حرف ال iيرجع :Stringمن مثال String s = "Core Java 2";char c = s.charAt)3(;

Page 8: دوسية جافا 1

.'c='eالخروج المتسلسلة في الصفر من األحرف عد نبدأ ألننا

1098765432102avaJeroC

حرف 11الطول

: لكلمة قلب يعمل برنامج مثالpublic class Revers{

public static void main)String[] args({String s = "Java";int length = s.length)(;for )int i=length;i>=0;i--(

System.out.print)s.charAt)i((;}

}avajالخروج :

Flow Control:التكرار:

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

: األوامر هذه و للعمليات

1- for) التكرار في السؤال في مساعدة متغيرات ; السؤال ; تعريفعملية )تنفيذتكرارها المراد العملية

2- while)السؤال(تكرارها المراد العملية

3- do{تكرارها المراد العمليات

}while)السؤال(;

( خطأ: او صح اما يكون حيث للتكرار حد لعمل نكتبه يبقى( true or falseالسؤال حيث: مثال خطأ نتيجته السؤال يصبح حتى ساريا العملية تكرار

int x=0;for)int i = 0 ;i<9;i++(

x++;

Page 9: دوسية جافا 1

هل: من iالسؤال تصبح 9أصغر حتى التكرار يكمل نعم الجواب كان تساوي iاذا أو أكبراألمر 9 في األخير الجزء قيمة for [i++]و لزيادة ليتوقف iينفذ خطأ السؤال يصبح حتى

العملية ينفذ هنا التكرار و قيمتها x++ 9التكرار تصبح حيث .9مرات

مثال:while)x!=0(i+=5;

عندما هنا السؤال تساوي xو i+=5نفذ 0ال

: واحد تكرار في واحدة عملية من أكثر تنفيذ كيفيةب التكرار بحصر ذلك داخل )block( {}نستطيع التي العمليات كل التكرار ينفذ حيث

. التكرار نفس في البلوك

مثال:int i=10,x=0;whil)i!=0({

x++;i--;

}

البلوك ) داخل التان العمليتين ينفذ التكرار ( --iو ++xحيث تصبح whileفي iحتى. T صفرا تساوي

التكرارين بين : do while و while الفرقالتكرار ينفذ حيث بسيط يسأل do whileالفرق أن قبل األقل على واحدة مرة العمليات

السؤال.مثال:

int x=0,i=1;do{

x+=5;}while(i==0);

العملية ينفذ .x+=5حيث السؤال قبل األقل على مرة

الشرط:: الشرط لعمل أمرين وهناك ما عملية لتنفيذ شرط استخدام الجافا في نستطيع

1-if(الشرط)العملية

خاطئ أو صحيح اما يكون و التكرار عمليات في مثل شرط أي وضع نستطيع (وBoolean(.

مثال:if ( i==5)

x++;ب حصرها نستطيع . {}كما عملية من أكثر لتنفيذ

Page 10: دوسية جافا 1

ب اتباعها .elseنستطيع اخرى عملية ينفذ الشرط في األولى العملية ينفذ لم اذا حيث

مثال:if)i==5(

x++;else

x+=2;ينفذ لم حصر x+=2سينفذ ++xاذا كذلك نستطيع .{}ب elseو

ب اتباعها .)else if)booleanأو الثاني الشرط يجرب األول الشرط ينفذ لم ان حيث

مثال:if)i>=4(

x++;else if)i>6(

x*=6;

المفتاح أمر هو الثاني المفتاح ) switch ( األمر هذا استخدام نستطيع حيثكالتالي:

int x;switch)x({

case 1:العملية

break;case 2:

العمليةbreak;..default:

السابقة الخيارات تحقق عدم عند عملية تنفيذbreak;}

مكان وضع نستطيع النوعين xحيث سويتش األمر المثال char أو intفي في مثال فقطوضعنا حيث نوع xالسابق قيمة intمن كانت اذا كالتالي األمر يعمل ينفذ 1تساوي xو

تحت التي .case 1العملية هكذا وقيمة تكن لم في xاذا الموجودة العملية ينفذ للمفتاح الموضوعة القيم في موجودة

default. الخيار وضع عدم .defaultيمكن

كل ال breakباألمر caseينتهي داخل التي العمليات كافة ينهي .caseحيثاألمر مالحظة: استخدام . breakيمكن التكرار عملية إلنهاء ذالك و التكرار في

X

Case 1

Case 3

Case 2

default

Page 11: دوسية جافا 1

مثال:while)x!=0({

x++;if)x>0(

break;}

شرط تنفذ اذا التكرار عملية من يخرج المثال هذا .ifفي

Arrays ( المصفوفات ) : : كالتالي بالذاكرة تمثل حيث مصفوفة تعريف الجافا في نستطيع

الخانات في الموجودة للقيم مختلفة عمليات لعمل تستخدم و الخانات أرقام

. متسلسلة عناوين لها الذاكرة في محجوزة أجزاء

حجم بمقدار جزء كل حجم يكون و الذاكرة في متسلسلة عناوين المصفوفات تحجز. المصفوفة به عرفت الذي النوع

مثال:int[] a = new int[10];int[] a = {1,3,5,2};

من جديدة مصفوفة بنينا بأن المصفوفة عرفنا األولى بطريقتين المصفوفة عرفنا هناحجم 10تحجز intنوع لها خانة كل و الذاكرة في متسلسلة لكن )int )4byteخانات و

, بأن المصفوفة فعرفنا الثانية في اما صفر هي و االفتراضية القيمة على تحتوي الخاناتنوع من حجمها يكون و الموضوعة القيم بعدد خانات النظام يحجز حيث لها قيم وضعنا

int. التسلسل حسب الموضوعة القيم من قيمة على تحتوي خانة كل وبناء newاألمر مالحظة : على مكان objectيعمل الذاكرة في يحجز حيث

. جديد ألوبجكت

: منها القيم اخذ و المصفوفة استخدام كيفيةعمل او خانة أي في جديدة قيمة تخزين أو خانة أي في المخزنة القيمة معرفة نستطيع

العنوان ) طريق عن الخانة هذه على .indexعمليات الخانة( رقم هو ومثال:

int[] a = {1,3,5,6,2};int x=a[0];a[1]+=4;

الخانة قيمة خزنا المثال هذا المتغير 0في قيمة xفي أصبحت . 1تساوي xحيثللخانة أضفنا .7تساوي a[1]فأصبحت 4القيمة 1و

6543210

Page 12: دوسية جافا 1

الميثود باستخدام المصفوفة طول معرفة :int lengthنستطيع كالتالي int x;int[] e={2,5,3,7,1,9};x=a.length;

قيمة األخيرة xحيث العملية بعد .6تساوي للمصفوفة المحجوزة الخانات عدد هو و

: المصفوفة في موجود رقم أصغر يوجد برنامج مثالClass Minimum{

public static void main)String[] args({int[] a={3,8,4,9,1};int min = a[0];for)int i=0;i<a.length;i++({

if)a[i]<min(min=a[i];

}System.out.println)"the min number in the Array = "+min(;

}}

.min = 1الخروج:

ال : Method إستخدام جافا برمجة في

كل استدعاء يتم و واحد برنامج في الرئيسي الميثود غير ميثود من أكثر كتابة نستطيع. الرئيسي الميثود من الحاجة عند ميثود

: المصفوفة في موجودة قيمة أعلى حساب مثالclass Maximum{

public static int getMax(int[] a){ قيمة اعلى لحساب ميثودint max = a[0];for)int i=0;i<a.length;i++({

if)a[i]>min(max=a[i];

}System.out.println)"the min number in the Array = "+min(;

}

public static void main(String[] args){ الرئيسي الميثود هناint[] b={2,5,4,9,1,33};int max=getMax(b); الميثود نادينا هناSystem.out.println)"the max number in the Array = "+max(;

}}

Page 13: دوسية جافا 1

public static int getMax)int[] a(

في مالحظة: الرئيسي الميثود يكون أن يمكن حيث الجافا في الميثود ترتيب اليهماآلخر.

نوع من األوبجكت خارج هي التي الميثود تكون ان المثال staticيجب في كما لنناديهاالسابق.

2D Arrays ( اإلتجاهين ذات : ( المصفوفاتتمثيل بنفس الذاكرة في تمثل و الجافا في اتجاهين ذات مصفوفة تعريف نستطيع

. الواحد اإلتجاه ذات المصفوفة: اإلتجاهين ذات المصفوفة تعريف مثال

int[][] a = new int[2][4];قيم لها أوبوضع

int[][] a = {{1,2,4,7},{-1,5,8,9}};. المراد العامود رقم و الصف رقم نضع المصفوفة في خانة لقيمة للوصول

مثال:int[][] a= {{1,2,4,7},{-1,5,8,9}};int x = a[0][3];

قيمة أصبحت .7تساوي xهنا

7421

9851-

Comments and Documentation ( التعليقات و : ( المالحظاتلكي المالحظات أو التعليقات هذه تكتب حيث الجافا في التعليقات من نوعين هناك

فهم المستخدم يستطيع لكي أو ميثود من كتبناه ما فهم اآلخرون المبرمجون يستطيع: هما النوعان هذان و البرنامج عمل في أبدا تؤثر وال البرنامج

Comments :اإلشارة بعد تكتب بين //و تحصر .....*/أو المبرمج التعليق/*...... ليستطيع تكتب و

. فهمه و كتبناه الذي البرنامج قراءةDocumentation:

بين تكتب ........**/و يعمل المساعدة/*....... ماذا يفهم المستخدم لجعل منها والفائدةالبرنامج.

التي القيمةو الميثود يرجعها

نوع من intهنا

او المتغير نوعobject إلرساله

هنا و الميثود الىمصفوفة نوع من

( حقيقية ( intأعدادهذا يسمى و

:الجزئ ( المعامل(

parameter.

Page 14: دوسية جافا 1

و مالحظة: انترنت صفحة منها عمل و التعليقات قراءة تستطيع جافا في أدوات هناك .javadocتسمى

مثال:/**class to print star @auther : Ali azzeh @company : al quds university @version 1.0 */class star{

public static void main)String[] args({System.out.print)"*"(; //print star

}}

مراعاة يجب بالجافا البرمجة قوانين في حيث ألهميتها التعليقات كتابة يجب الجافا فياستخدام عدم و للبرنامج التنظيم و من side effectالترتيب أكثر كتابة عدم يعني و

. واحد سطر في عملية

مثال:i=23+22;b=13%67; side effect

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

. البرنامج فهم لتسهيل الكالس أو األوامر أو الميثود حصر في الترتيب مراعاة يجب كما

مثال:class star{| public static void main)String[] args(| {| | System.out.print)"*"(;| }}

ال: مالحظة ال Documentationتكتب و الميثود قبل ال fieldدائما .Constructorو

:% بتقنية ثالثا البرمجة : OOP كيفية

ال: .objectالفكرة المعلومات من مجموعة هو

Page 15: دوسية جافا 1

Fields:

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

. عالمته و الجامعي

مثال:class Student{

/**String نوع من هو و الطالب /*اسمpublic String name; /**double نوع من هو و الجامعي /*الرقمpublic double id; /**int نوع من هي و /*العالمةpublic int mark;

}

Constructor:يعمل حيث استخدامه علينا يجب أوبجكت بناء نحتاج عندما األوبجكت باني عن عبارة هو

. منه بني الذي األوبجكت صفات له جديد أوبجكت لناال اسم . Constructorيكون فيه المعمول الكالس نفساسم

مثال:class Student{

/**String نوع من هو و الطالب /*اسمpublic String name; /**double نوع من هو و الجامعي /*الرقمpublic double id; /*int نوع من هي و /*العالمةpublic int mark;/**Constructor of Student Object*/public Student(){}

}

class StudentTest{public static void main)String[] args({

Student ali = new Student)(;ali.name ="ali";ali.id = 20011164;ali.mark = 80;System.out.print)ali.name+ali.id+"["+ali.mark+"]"(;

}

Page 16: دوسية جافا 1

}ال يكون أن من Constructorيمكن أكثر هناك يكون أن كذالك ويمكن باراميتر مع

Constructor الحالة هذه تسمى و الباراميتر بعدد األختالف يكون و واحد ألوبجكتOverloading.

ال )Constructorيسمى اإلفتراضي الباني باراميتر له ليس (Default Constructorالذيلل قيم اعطاء دون لألوبجكت بناء يعمل .Fieldsحيث مكتوب دائما يكون و

مثال:class Student{

/**String نوع من هو و الطالب /*اسمpublic String name; /**double نوع من هو و الجامعي /*الرقمpublic double id; /*int نوع من هي و /*العالمةpublic int mark;/**Default Constructor of Student Object*/public Student(){}/**Constructor of Student Object with parameter */public Student(String aName,double aId,int aMark){

name = aName;id = aId;mark = aMark;

}}class StudentTest{

public static void main)String[] args({Student ali = new Student)"ali",20011164,80(;System.out.print)ali.name+ali.id+"["+ali.mark+"]"(;

}}

الميثود و المعلومات على يحتوي الذي هو حيث األوبجكت على دائما التركيز الجافا في. المعلومات هذه نتائج لتعطينا المطلوبة

األوبجكت داخل التي الميثود لتنفيذ أوامر عن عبارة هو الجافا في الرئيسي الميثودتستخدم ال و لغة مفاهيمفقط في مثل الجافا في .cالفنكشن

Public / Private:

Public:كلمة وضع في publicعند استخدامهم نستطيع األوبجكت باني أو الفيلد أو الميثود قبل

ال كتابة يجب الحالة هذه في و آخر كالس يجعل documentationأي ذلك و األشياء لهذه

Page 17: دوسية جافا 1

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

Private: )...., , ( فيلد ميثود السابقة األشياء كانت الكالس privateاذا من اال استخدامها نستطيع ال

لذالك و سهل تحديثها أمر يكون بذلك و التعليق لكتابة نحتاج ال و فيه عرفت التيمعرفة فيلد األوبجكت في دائما معرفة privateنستخدم ميثود .publicو

Accessor and Mutator:هما : و ميثودين معرف فيلد لكل هناك دائما األوبجكت في

Accessor:بكلمة اسمه دائما يبدأ و الفيلد هذا داخل المخزنة للقيمة للوصول يستخدم ويرجع getو

. باراميتر بدون هو و الفيلد قيمةMutator:

بكلمة اسمه دائما يبدأ و معين فيلد قيمة لتغيير يستخدم ال setو لكن و باراميتر ولهقيمة . يرجع

مثال:

class Student{private String name; private double id; private int mark;/**Default Constructor of Student Object*/public Student)({}/**Constructor of Student Object with parameter */public Student(String aName,double aId,int aMark){

name = aName;id = aId;mark = aMark;

}/**accessor to name*/public String getName(){

return name;}/**mutator to name*/public void setName(String aName){

name = aName;}

Page 18: دوسية جافا 1

/**accessor to Id*/public double getId)({

return id}/**mutator to Id*/public void setId)double aId({

id = aId;}

/**accessor to Mark*/public int getMark)({

return mark;}/**mutator to Mark */public void setMark)int aMark({

mark = aMark;}

}

class StudentTest{public static void main)String[] args({

Student ali = new Student)(;ali.setName)"ali"(;ali.setId)20011164(;ali.setMark)80(;System.out.print)ali.getName)(+ali.getId)(+ali.getMark)((;

}}

.ali 20011164 80الخروج : كلمة مالحظة: وضع .voidعند قيمة يرجع ال أنه يعني هذا الميثود قبل

toString Method:نوع من يرجعها التي القيمة و األوبجكت عن معلومات لنا يرجع ميثود عن عبارة هو

String.عنوان لنا يرجع مناداته عند لكن و افتراضيا الميثود هذا موجود يكون األوبجكت بناء عند

. كتابته إلعادة عادة نحتاج لذلك و الذاكرة في

class Student{private String name; private double id; private int mark;/**Default Constructor of Student Object*/public Student)({

Page 19: دوسية جافا 1

}/**Constructor of Student Object with parameter */public Student(String aName,double aId,int aMark){

name = aName;id = aId;mark = aMark;

}/**accessor*/public String getName)({

return name;}/**mutator*/public void setName)String aName({

name = aName;}

/**accessor*/public double getId)({

return id}/**mutator*/public void setId)double aId({

id = aId;}

/**accessor*/public int getMark)({

return mark;}/**mutator*/public void setMark)int aMark({

mark = aMark;}

/**toString Method*/public String toString(){

return "Name"+name+","+"ID:"+id+","+"MARK:"+mark;}

}class StudentTest{

public static void main)String[] args({Student ali = new Student)"ali",20011164,80(;System.out.print)ali.toString)((;

}}

Page 20: دوسية جافا 1

Name: ali , ID: 20011164 , MARK: 80الخروج: بدل الطباعة أمر في كتبنا الميثود aliفقط ali.toStringاذا يستخدم األوبجكت اسم أي

toString T . تلقائيامثال:

System.out.print)ali(;نفسها :هي

System.out.print)ali.toString)((;Name: ali , ID: 20011164 , MARK: 80الخروج: نوع مالحظة: من الفيلد كان من staticاذا المعرفة األوبجكت لكل ثابتة قيمته فتكون

. الحاجة عند قيمته تغيير يمكن لكن الكالسو نفسمثال:

class Student{private String name; private double id; private int mark;private static int nextId=5;...

}class StudentTest{

public static void main)String[] args({Student ali = new Student)"ali",20011164,80(;Student hamzeh = new Student)"hamzeh",20111159,80(;System.out.print)ali.getNextId)(+" , "hamzeh.getNextId)((;

}}

.5 , 5الخروج: Constant ( الثابت ) :

يستخدم انما و البرنامج في قيمته تغيير يمكن ال القيمة ثابت فيلد تعريف نستطيعالمعرفة الكلمة باستخدام ذلك و .finalكثابت

مثال:class StudentTest{

public static final String a="NAME : ";public static void main)String[] args({

Student ali = new Student)"ali",20011164,80(;Student hamzeh = new Student)"hamzeh",20111159,80(;System.out.print)a+ali.getName)((;

}}

.NAME : aliالخروج:

Page 21: دوسية جافا 1

: الذاكرة في األوبجكت تمثيلاألوبجكت لرسم مثال الذاكرة في لألوبجكت تمثيلي رسم رسم المثال aliيمكن في

السابق:

الإلسم Stringال مالحظة : من سهم رسمنا لذلك أوبجكت عن عبارة هواألوبجكت .Stringالى

Input and Output:مجرى تسمى اإلخراج و اإلدخال أدوات الجافا استقبال (Stream)في يتم حيث

: كالتالي مجرى طريق عن المدخلة المعلومات

: المفاتيح لوحة من القرائة

نحتاج المفاتيح لوحة )3للقرائةمن و( Stream 3أنابيب األعلى في التي الصورة في كماهم:

System in: . مرة كل في واحد بايت قرائة على يعمل و األول األنبوب هو و

Input Strem Reader:كل تحويل على يعمل .2و رمز أو حرف الى بايت

Buffered Reader:( سلسلة منها لعمل مؤقتة ذاكرة في الرموز أو الحروف هذه تجميع على يعمل و

String.)

مثال:

Student

String name

double id=20011164

int mark=80

Student ali

String

"ali"

Buffered Reader Input Stream

Reader System in inpu

t

Page 22: دوسية جافا 1

BufferedReader in = new BufferedReader)new InputStreamReader)System.in((;

القارئ الكالس inهنا نوع من الكالس BufferedReaderهو له BufferedReaderوالكالس InputStremReader( parametrالمعامل) المعامل InputStreamReaderو له

System.in. المفاتيح لوحة من بايت للقرائة كالس هو واألحرفمن من سلسلة أو حرف لقرائة مجرى تمثل المثال في كما بعضها مع هي و

. المفاتيح لوحة

.in مالحظة : تغييره يمكن اسم مجرد هوTry And Catch:

الكلمتين بين الكتابة و القرائة أوامر تحصر الجافا في الكتابة و القرائة عمليات tryعندفي catchو تسبب الذي الخطأ فأمسك تنجح لم اذا و الكتابة أو القراءة جرب تعني و

تسمى , األخطاء و العملية في النجاح مثل :"Exception"عدم عديدة أنواع هناك وIOException مثال أو الخروج و الدخول اجهزة في خطأ تعني و

NumberFormatException من التحويل أخطاء هي ) Stringو رقم (.,…..int,longالىمثال:

try{ BufferedReader in = new BufferedReader)new InputStreamReader)System.in((; String s = in.readLine)(; // المفاتيح لوحة من سطر يقرأ }catch(Exception e){

في ...... خطأ هناك كان إذا يفعل أن نريد ماذا.......العملية

}e. البرنامج يمسك أن يجب األخطاء من نوع أي نحدد لم أي عام خطأ هي e. تغييره يمكن اسم هو

: هكذا الشاشة على الخطأ طباعة نستطيعtry{ BufferedReader in = new BufferedReader)new InputStreamReader)System.in((; String s = in.readLine)(; }catch)Exception e({

System.out.print(e); بالضبط الخطأ لنا //يطبع }

القارئ , : 1 مالحظة السابق المثال في مثال الكالس في واحدة مرة القارئ تعريف inيتم. الكالس في واحدة مرة تعريفه يتم

بعمليات catchو Tryاستخدام : 2 مالحظة T إنماو اإلخراجو اإلدخالليسمحصورا. خطأ تحدث أن يمكن عملية أي لحصر يستخدم

: القراءة ملف من

نصي ملف من الجافا في القرائة الكالس (text file)نستطيع طريق عنFileReader: كالتالي القارئ تعريف يكون حيث

Page 23: دوسية جافا 1

BufferedReader r = new BufferedReader(new FileReader("c:\myFile.txt"));الذي FileReaderللكالس( parameterالمعامل ) المسار عن تعبر و سلسلة عن عبارة هو

: مثال الملف فيه موجود"c:\myDocument\doc\ملفي.txt"

: ملف في األسطر يعد برنامج مثالclass CountFileLine{

public static void main)String[] args({ try{ BufferedReader r = new BufferedReader)new FileReader)"c:\myFile.txt"((;

String s; int count=0; //int نوع من هو و األسطر متغيرلحساب while))s = r.readLine)((!=null( // الملف نهاية حتى سطر سطر يقرأ count++; r.close)(; // الملف إلغالق

System.out.print)"The Number Of line in this file is : "+count(; }catch)Exception ee({

System.out.print)"error when reading file : \n"+ee(; }

}}

تعني nullمالحظة: و الجافا في معرفة كلمة شيء هي .ًال

: ملف في منها الكتابة و للكتابة تستخدم التي الكالس من األنواع من العديد هناككذلك PrintWriterالكالس يستخدم هو و كذلك الملف على بالتعديل يسمح هو ونوع FileWriterالكالس من هو اآلخر المعامل و وضعنا Booleanكمعامل اذا حيثكانت trueالقيمة اذا اما المطلوب الملف على اضافة و falseيعمل باإلضافة يقوم فال

. غيره يكتب و السابق الملف في ما يمسح انما

المفاتيح لوحة من يقرأ برنامج :10مثال ملف في يخزنها و أرقام

public class PrintWriterTest { public static void print)int[] a({ try{ PrintWriter out=new PrintWriter(new FileWriter("c:\ out.txt",false)); for )int i=0;i<a.length;i++( out.println(a[i]); out.close(); }catch)IOException e({System.out.println)e(;} }

Page 24: دوسية جافا 1

public static void main)String[] args({ int[] a=new int[10]; String l; BufferedReader b=new BufferedReader)new InputStreamReader)System.in((; System.out.println)"ENTER TEN NUMBER: "(; try{ for )int i=0;i<a.length;i++({ l=b.readLine)(; a[i]=Integer.parseInt(l); حقيقي عدد الى سلسلة //يحول

} }catch)Exception d({System.out.println)d(;} print)a(; }}int Integer.parseInt)String s( :

ال تحويل على يكون String sيعمل اال و رقم عن عبارة السلسلة كانت اذا رقم الى:Exceptionهناك مثال خطأ أي

String s = "abc";String d="123";int l = Integer.parseInt)s(; //error NumberFormatExceptionint a = Integer.parseInt)d(; // true and a = 123

: مثل اخرى قيم الى السلسلة من لتحويل ميثود هناك يوجد كماfloat Float.parseFloat)String s( عشري رقم الى //يحولlong Long.parseLong)String s( لونج نوع من رقم الى //يحول

Inheritance ( التوارث ) :

الطالبطالب من نوعين هناك مثال آخر كالس من فرعي اوبجكت او كالس عمل هو ومثال الماجستير طالب و طالب هم النهاية في اإلثنان و بكالوريوس طالب و ماجستير

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

الكالساألصليب sub classالفرعيب .super classو

Bacalorious Student

Name

Id

Avrage

Master Student

BaAvrage

Mark

SuperClass SubClass

Page 25: دوسية جافا 1

معدل و عالمة و جامعي رقم و اسم لهم الطالب كل الصورة هذه فيلهم ضعنا و لذالك اضافي معدل لهم الماجستير لطالب لكن و تراكمي

. الطالب هو و الرئيسي األوبجكت من فرعي اوبجكت

كلمة :extendsتستخدم كالتالي كالسفرعي لعملclass MasterStudent extends Student{

}

مثال:

( الرئيسي (:super classالكالسclass Student{

private String name; private double id; private int mark;/**Default Constructor of Student Object*/public Student)({}/**Constructor of Student Object with parameter */public Student(String aName,double aId,int aMark){

name = aName;id = aId;mark = aMark;

}/**accessor to name*/public String getName(){

return name;}/**mutator to name*/public void setName(String aName){

name = aName;}

/**accessor to Id*/public double getId)({

return id}/**mutator to Id*/public void setId)double aId({

id = aId;}

الكالس اسمالرئيسي

Page 26: دوسية جافا 1

/**accessor to Mark*/public int getMark)({

return mark;}/**mutator to Mark */public void setMark)int aMark({

mark = aMark;}

}

( الفرعي (:sub classالكالس

class MasterStudent extends Student{double BaAvrage;

public MasterStudent)({}public MasterStudent)String aName,double aId,int aMark,double aBaAvr({

super)aName,aId,aMark(; الرئيسي الكالس في الباني نستخدم هناالمعامالت نفس له //الذي

BaAvrage = aBAvr;}

public void setBaAvrage)double average({BaAvrage = average;

}public double getBaAvrage)({

return BaAvrage;}public String toString)({ return "Master Student :\n"+super.toString+"BaAvrage= : "+getBaAvrage;}

}

class StudentTest{public static void main)String[] args({

Student ali = new Student)"ali",20011164,80(;MasterStudent amjad = new MasterStudent)"amjad",9711123,84,78(;System.out.print)ali.toString)(+"\n"+amjad.toString)((;

}}

Page 27: دوسية جافا 1

this and super:الدالة superالدالة أما الرئيسي الكالس على هي thisتدل التي الكالس على فتدل

. فيه موجودةالدالة مثال استخدام نستطيع بطريقتين :superو

1( الباني- يسمح( constructorفي تكتب استخدامهاحيث و فقط األول السطر فيكالتالي:

super)المعامالت(المعامالت نفس له الذي الباني يستخدم و الرئيسي الكالس في الباني الى يذهب حيث

. السابق المثال في كماالكالس- 2 في الرئيسي الكالس من الميثود استخدام نستطيع حيث الميثود في

: كالتالي الدالة هذه باستخدام الفرعيsuper. الميثود اسم

الميثود في السابق المثال في الكالس toStringكما .MasterStudentفيالدالة استخدام نستطيع الدالة thisو لكن الطريقة بنفس داخل thisكذلك تستخدم

حيث :إذاالكالسفقط كالتالي الباني في وضعناهاthis)المعامالت(;

. نفسه الكالس في المعامالت نفس له الذي الباني الى يذهبالذي األوبجكت على تدل و الكونستراكتور في كتابتها نستطيع :أرسلكما مثال

public Student)String name({this.name = name;

}كالتالي : ميثود المين في اوبجكت بنينا اننا لو حيث

Student ali = new Student)"ali"(;الفيلد thisتدل على الباني و aliلألوبجكت nameفي الفيلد بين التفريق يستطيع بذلك و

الباراميتر.

: الجافا مميزات بعضOverriding( الهيمنة ):

الفرعي الكالس في المعامالت نفس له و الميثود نفس كتابة الجافا في نستطيع. الرئيسي الكالس في الموجود

Polymorphism( التعددية ):

عمل نستطيع السابق المثال في مثال لألوبجكت مرجعية عمل الجافا في نستطيعالفرعي الكالس نوع من بأوبجكت الرئيسي الكالس نوع من أوبجكت بين مساواة

كالتالي:

MasterStudent y = new MasterStudent)(;Student x = y;

لألوبجكت الفرعي الكالس داخل الموجودة الميثود استخدام نستطيع ال من xهنا ألنه. الرئيسي الكالس نوع

. الطالب من مصفوفة بعمل الخاصية هذه من نستفيدمثال:

Page 28: دوسية جافا 1

Student[] std = new Student[2];std[0] = new Student)(;std[1] = new MasterStudent)(;

Dynamic Binding( ( الديناميكي : الربطحيث الخاصية هذه الجافا يكون إذايستخدم السابق المثال في مثل مساواة عملنا

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

System.out.print)x(;الميثود للمتغير yلألوبجكت toStringيستخدم ليس .xو

Constant Class( الثابت :( الكالسله عمل نستطيع ال يعني الكالس لهذا كالسفرعي عمل نستطيع ال أننا يعني هذا و

overriding. كلمة قبله نكتب ثابت الكالس لجعل .finalو

مثال:final class Student{…}

الكالس مثل كالسفرعي عمل نستطيع ال الكالس MasterStudentحيث Studentمنثابت . ألنه

Hirachies ( الهرم ) : . أوبجكت للكالس فرعية كالسات عن عبارة هي الكالسات كل الجافا في

Abstract Classes ( المجردة :( الكالساتنعرفكالس نستطيع abstractعندما وال كأوبجكت استخدامه نستطيع ال أننا يعني هذا

يداخله التي الميثود برنامج إالاستخدام عمل نريد لو مثال الفرعية الكالسات خالل منالطالب الستئجار و األساتذة المستخدمين من نوعين هناك و الجامعة مكتبة من الكتب

اوبجكت نعمل و abstract لذلك األساتذة من لكل فرعية اوبجكت و عامة للمستخدمينالطالب.

مثال:abstract class User{

private String name;private String bookName;private Date borrowDate;public User)String name({

this.name = name;

Object

Student

PacStudent MasterStudent

Page 29: دوسية جافا 1

}public String getName)({

return name;}public void borrowBook)String bName({

bookName = bName;borrowDate = new Date)(;

}public void returnBook)({

bookName = null;}public String getBook)({

return bookName;}public Date getBorrowDate)({

return borrowDate;}public abstract boolean isLate)(; كتابته يجب انه يعني هذا و ابستراكت الميثود هذا كتبالفرعية الكالسات //في

}: الفرعي الكالس بكتابة نبدأ

class Student extends User{private int Id;public Student)String aName,int Id({

super)aName(;this.Id = Id;

}public boolean isLate)({

if )new Date)(.compareTo)borrowBook(>1( return true;

return false;}public String getName)({

return super.getName)(;}public int getId)({

return Id;}

}class Professor extends User{

public Professor)String name({super)name(;

Page 30: دوسية جافا 1

}public boolean isLate)({

if )new Date)(.compareTo)borrowBook(>1(return true;

return false;}public String getName)({

return "Dr."+super.getName)(;}

}class LibraryTest{

public static void main)String[] args({User[] users = new User[3];users[0] = new Student)"ali",20011164(;users[0].borrowBook)"Java 2 V2"(;users[1] = new Professor)"وائل"(;users[1].borrowBook)"JSP and Servlet"(;users[2] = new Student)" 9912312",سميح (;for)int i = 0;i<users.length;i++({

System.out.print)"\n "+users[i].getName)((;If ) !)users[i].getBorrowBook)(.equals)null((({ System.out.print)"\n"+users[i].getBorrowBook)(+"has borrowd If)users[i].isLate)((

System.out.print)"\n Hi Is Late!!!"(;}

}}

}: السابق المثال في البرنامج في واضحة الغير األمور بعض

Date: الجهاز ساعة و تاريخ يقرأ كالس عن عبارة هومثال:

Date a = new Date)(; الجهاز ساعة و تاريخ يقرأ النوع هذا من جديد اوبجكت بناء //عندcompareTo :

نوع من قيمة يرجع و النوع نفس من اوبجكتين بين مقارنة يعمل ميثود عن عبارة intهويرجعها التي القيمة تكون و اآلخر عن األوبجكت صغر او كبر عن تعبر كان 0حيث اذا

. متساويين األوبجكتينمثال:

int i = ali.compareTo)mhamad(;

Page 31: دوسية جافا 1

equals:نوع من قيمة يرجع و النوع نفس من اوبجكتين بين مقارنة يعمل ميثود عن عبارة هو

boolean يرجع متساويين كانا اذا يرجع trueحيث اال .falseومثال:

boolean b = ali.equals)mhamad(;

: المفيدة األوامر بعضSystem.exit(1): البرنامج من خروج يعمل

ال أوامر : String من

String toLowerCase() : احرفصغيرة الى الكلمة احرف تحويل على يعملمثال:

String s = "GhOsT";String h = s.toLowerCase)(;

"h = "ghostالخروج : String toUpperCase() : كبيرة أحرف الى األحرف تحويل على يعمل

int compareToIgnoreCase(String s) : ( أو كبير الحرف نوع عن النظر بغض أخرى الكلمة مع الكلمة يقارنيرجع( متساويتين 0صغير الكلمتين كانتا اذا

مثال:String s = "GHOST";String h = "ghost"Int l = s. compareToIgnoreCase)h(;

l = 0الخروج : String substring(int beginIndex,int endIbdex):

قيم بتحديد نقو و السلسلة من جزئ أخذ على و beginIndexيعمل الكلمة قطع بداية تحدد endIbdexموقع و. الكلمة من القطع نهاية

مثال:String s = "muhamad";String sub = s. substring)2,6(;

"sub = "hamadالخروج :

األوبجكت المراد األول

له المقارنة

نفس من المعاملاألول األوبجكت نوع

به المقارنة لعمل

Page 32: دوسية جافا 1