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