Java lab lecture3pdf

Page 1

CS602 & GS311 ‫برمجة جافا‬ Java Programming I (LAB) ‫عملي‬ ‫اعداد‬ ‫ حليمة محمد عطية‬.‫أ‬ 2017 ‫خريف‬ 3 ‫محاضرة‬ FB : Ms H Programmer www.msjavaprogrammer.strikingly.com


‫المصفوفات في لغة الجافا ‪Array in Java‬‬ ‫‪Language‬‬ ‫• المصفوفة هً نوع من انواع البٌانات تتكون من مجموعة‬ ‫من العناصر من نفس النوع‪ ،‬او عناصر تنتمً لفئة محددة‪ .‬و‬ ‫تتمٌز المصفوفات بانها مرتبة اما فً هٌئة صفوف من‬ ‫البٌانات او اعمدة (ذات بعد واحد)‪ ،‬او فً هٌئة صفوف و‬ ‫اعمدة (ذات بعدٌن أو اكثر)‪.‬‬ ‫• الستخدام المصفوفات فً لغة الجافا‪ ،‬البد من اتباع الخطوات‬ ‫التالٌة‪:‬‬


declare the array variable

.1 :

type

array-name[ ]; create the array :

.2

Array-name = new type [array-size] ; : type Array-name[ ] = new type [array-size] ;

2 1

.3


:‫مالحظات‬ 

constant array :

array initialization

Array-name[array-size] = {array-element } ; , .

new :

type Array-name[ ] [ ]= new type [array-row number] [array-column number] ;

 


: ‫مالحظبث‬  : type[ ] Type[ ] array-name1, array-name2, …,array-namen; Same as: Type array-name1[ ],array-name2[ ],….,array-namen[ ]; :

length

.

 Array-name.length


‫* تتميز لغت الجبفب عه غيشهب مه اللغبث في‬ ‫قذستهب على إداسة الزاكشة ‪memory-‬‬ ‫‪ managed‬بحيث أن المبشمج ال يهتم بإلغبء‬ ‫التخصيص لكىمت مه البيبوبث في الزاكشة‪ .‬لغت‬ ‫جبفب قبدسة على رلك تلقبئيب ً و كزلك بيئت التطىيش‬ ‫‪ Android‬التي هي بذوسهب بيئت بشمجت‬ ‫‪ .memory-managed‬و قذ اعتمذث كل مه‬ ‫‪ Microsoft‬و ‪ Apple‬هزا الىمىرج في‬ ‫‪.mobile development platforms‬‬


‫التصانيف و الكائنات ‪Classes & Objects‬‬ ‫•‬ ‫•‬

‫•‬

‫•‬

‫مفهوم برمجة الكائنات ‪Object-Oriented Programming Concept‬‬ ‫العالم من حولنا فً حقٌقة االمر ٌتكون من مجموعة من الكائنات ‪.objects‬‬ ‫كل كائن له خصائص ‪ٌ attributes‬تمٌز بها‪ ،‬و سلوك ‪ٌ behavior‬سلكه‪.‬‬ ‫فمثالً االنسان هو ذلك الكائن البشري الذي ٌتمٌز بصفات (الوصف)‪ :‬له‬ ‫عٌنان‪ٌ ،‬دان‪ ،..،‬و له سلوك ٌسلكه مثل‪ :‬العقل‪ ،‬االكل‪ ،‬الشرب ‪ ،‬المشً‪....‬‬ ‫بناءاً على هذا المفهوم‪ ،‬جاءت فكرة البرمجة الموجهة نحو الكائنات أو‬ ‫البرمجة الشٌئٌة‪ ،‬حٌث تعتبر لغة ‪ Java‬من اللغات الكائنٌة و فٌها ٌتكون البر‬ ‫نامج من مجموعة من ‪ objects‬التً تتفاعل مع بعضها البعض‪ .‬هذه الكائنات‬ ‫تم تكوٌنها وفقا ً لمعاٌ​ٌر و نماذج محددة و معرفة مسبقا ً فً البرنامج تسمى‬ ‫‪( classes‬التصانٌف او الفصائل أو الفئات)‪.‬‬ ‫اذن‪ ،‬لكً نكون كائن‪ ،‬البد أوالً و قبل كل شً ان نكون تصنٌف ‪ ،class‬و من‬ ‫هذا التصنٌف ‪ class‬نكون أي عدد من الكائنات حسب حاجة البرنامج‪.‬‬


....doors

windows ( class : . )material ( .. width length .

blocks

:

: .)


‫مزايا البرمجة باستخدام ‪OOP‬‬ ‫‪.1‬‬ ‫‪.2‬‬

‫‪.3‬‬ ‫‪.4‬‬ ‫‪.5‬‬

‫امكانٌة صنع أي قالب ‪ class‬وفقا ً للمعاٌ​ٌر و المقاٌ​ٌس المحددة حسب‬ ‫الحاجة‪.‬‬ ‫امكانٌة استخدام هذه ال‪ classes‬و االستفادة منها فً تكوٌن أي عدد‬ ‫من الكائنات دون الحاجة الى معرفة التفاصٌل عن هذه ال‪.classes‬‬ ‫امكانٌة استخدام أي تصنٌف ‪ class‬موجود مسبقا ً و امكانٌة اضافة‬ ‫بٌانات اخرى إلٌه دون الحاجة الى معرفة تفاصٌل هذه ال ‪class‬‬ ‫(الوراثة ‪.)inheritance‬‬ ‫امكانٌة تعدد االشكال (‪ ،)polymorphism‬بمعنى انه ٌمكن ان نجعل‬ ‫البرنامج المكتوب بصفة عامة ‪ٌ general‬خضع لتنفٌذ مهمة خاصة‬ ‫‪.specific‬‬ ‫امكانٌة حماٌة البٌانات و تغلٌفها داخل كبسولة ‪ encapsulation‬حٌث‬ ‫ُتغلف البٌانات داخل ‪ class‬و ال ٌمكن الوصول الٌها بدون تخوٌل‬ ‫‪.authorization‬‬


‫التصانيف ‪classes‬‬ ‫•‬ ‫•‬ ‫•‬ ‫•‬ ‫•‬ ‫•‬ ‫•‬ ‫•‬

‫ٌمكن تعرٌف ال‪ class‬على انها‪:‬‬ ‫وصف لعدد من الكائنات المتشابهة‪.‬‬ ‫مجموعة من البٌانات )‪ data (attributes‬و الدوال ‪methods‬‬ ‫)‪ (behavior‬التً تشترك فً صفة معٌنة‪.‬‬ ‫أي ‪ class‬فً لغة ‪ Java‬تتكون من جزئٌن‪:‬‬ ‫الخصائص ‪attributes‬‬ ‫و هً البٌانات‪ :‬الثوابت و المتغٌرات التً تخص الكائن ‪ .object‬و‬ ‫ُتسمى بمتغٌرات االعضاء ‪ member variables‬أو ‪instance‬‬ ‫‪.variables‬‬ ‫السلوك ‪behavior‬‬ ‫و هً الوظٌفة او المهمة )‪(function or method‬التً ٌقوم بها‬ ‫الكائن ‪ .object‬و ُتسمى بالدوال االعضاء ‪.member methods‬‬


class definition ‫تعشيف التصىيف‬ : )optional

(

Access modifier class { Fields Constructors Methods }

class-name


Fields variable .1 :

class

access modifier type

variable-name ;

Constant .2 : final

class type )

constant-name = value; (


final constructor : final

type )

constant-name ; (

Class variable .1 ) : static

( static

type

class

variable-name ;

class .

class


: final

final static static

constant

type constant-name ;


constructor .a class object

constructor :

)

( )

public class-name ( type variable ) { , Constructor body }

(


‫اهميت دالت البىبء‬ ‫•‬ ‫•‬ ‫•‬ ‫•‬

‫تهٌئة الكائن ‪object initialization‬‬ ‫حٌث تقوم دالة البناء بإعطاء قٌم ابتدائٌة للكائن اثناء تكوٌنه‪،‬‬ ‫و فً هذه الحالة ٌتم تمرٌر هذه القٌم كمعطٌات مع جملة‬ ‫تكوٌن الكائن مع مراعاة الترتٌب‪.‬‬ ‫تخاطب الكائنات ‪inter-object communication‬‬ ‫و ُتعد هذه العملٌة من أهم مبادئ برمجة ‪ OOP‬حٌث تقوم‬ ‫دوال البناء بدور هام فً هذه العملٌة‪ ،‬و تتم هذه العلملٌة‬ ‫باستخدام تقنٌة ‪ .callback‬و غالبا ً ما ُتستخدم فً الواجهات‬ ‫الرسومٌة ‪.GUI‬‬


‫مالحظات‬ ‫• ٌمكن ان تحتوي ال‪ class‬الواحدة على أكثر من دالة بناء‬ ‫‪ constructor‬بشرط ان ٌكون هناك اختالف بٌنها فً عدد‬ ‫البارامترات أو نوعها‪.‬‬ ‫• ٌمكن االستغناء عن كتابة معدل وصول ‪ public‬مع دالة‬ ‫البناء‪.‬‬


methods .a .)action ( : )

(

access modifier {

)

return-type method-name ( type variable ) , method body

(


‫مالحظات‬ ‫‪ٌ .1‬مكن ان ال ُترجع الدالة أي قٌمة‪ ،‬و عندها ٌكون نوع القٌمة‬ ‫التً ترجعها الدالة ‪ return type‬هً الكلمة المحجوزة‬ ‫‪.void‬‬ ‫‪ٌ .2‬مكن ان تحتوي ال‪ class‬الواحدة على أكثر من دالة بنفس‬ ‫االسم بشرط ان تختلف إما فً نوع القٌمة التً ُترجعها الدالة‬ ‫او فً عدد البارمترات او نوعها‪ ،‬و ُتسمى هذه العملٌة‬ ‫ب‪.overloading‬‬ ‫‪ٌ .3‬مكن ان ٌكون للدالة اكثر من معدل وصول ‪access‬‬ ‫‪.modifier‬‬




method calling : type variable-name; ) ( )variable-name = ( Object-name.method-name( argument ) ; ,

class : )

(

static {

class method ) class static



(

)

(

return-type

method-name ( type variable ) , method body }


‫مالحظبث‬ ‫• تستخدم دالة من نوع ‪ static‬متغٌرات من نوع ‪ static‬فقط‪.‬‬ ‫• ٌمكن استدعاء الدالة ال‪ static‬بدون اقترانها باسم الكائن‬ ‫لوجودها فً موقع ذاكرة ال‪ class‬حٌث ٌتم استدعائها عن‬ ‫طرٌق اسم ال‪ class‬الموجودة فٌها‪.‬‬ ‫• تحتوي ‪ Java‬على مجموعة من ال‪ classes‬التً تتضمن‬ ‫دوال ٌمكن استدعائها باسم ال‪ class‬الموجودة فٌها مثل‬ ‫‪ class Math‬التً تتضمن مجموعة كبٌرة من الدوال‬ ‫الرٌاضٌة مثل دالة الجذر التربٌعً )(‪.sqrt‬‬


Objects ‫الكائنات‬

data :

class .class .

class

Class-name object-name =new class-name( argument );


. argument

.1 .2

. class : Class-name object-name1, object-name2,‌‌,object-namen ; :

object-name1 =new class-name(argument ); ,

.3


‫تفسير جملة تكوين الكائن‬ ‫ ٌستخدم الكلمة‬compiler ‫تعنً جملة تكوٌن الكائن السابق ان المترجم‬ :ً‫ لٌقوم بالتال‬new ‫المحجوزة‬ create object ‫تكوٌن كائن باالسم المعطى‬ memory location ‫حجز موقع فً الذاكرة لهذا الكائن‬ ‫استدعاء دالة البناء اذا كانت موجودة فً البرنامج و تمرٌر البٌانات الٌها و‬ ‫ فإنه ٌقوم بفرض دالة بناء افتراضٌة و‬،‫ و إال‬،‫تخزٌنها فً موقع ذاكرة الكائن‬ .null ‫ٌرجع القٌمة‬ The statement in the program uses the variable reference to send messages to an object. These messages are called to the methods that enable the program to interact with an object. The message includes the arguments that are method requires for performing its task.

• • • •


‫المؤثر ‪this‬‬ ‫• ٌُستخدم المؤثر ‪ this‬فٌما ٌلً‪:‬‬ ‫• حل مشكلة االسماء المتشابهة‪ ،‬حٌث ٌقترن المؤثر ‪ this‬مع‬ ‫اسم المتغٌرة العضو ‪.member variable‬‬ ‫• استدعاء دالة بناء‪ ،‬حٌث ٌمكن لدالة بناء ان تستدعً دالة بناء‬ ‫اخرى بشرط ان تكون اول جملة فً دالة البناء االخرى جملة‬ ‫االستدعاء‪ .‬و ٌمكن ان تحتوي جملة االستدعاء على معامالت‬ ‫‪ arguments‬كما فً الشكل التالً‪:‬‬ ‫; )معامالت (‪• this‬‬


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.