Presentation is loading. Please wait.

Presentation is loading. Please wait.

د.سناء الصايغ الفصل الأول البرمجة الشيئية

Similar presentations


Presentation on theme: "د.سناء الصايغ الفصل الأول البرمجة الشيئية"— Presentation transcript:

1 د.سناء الصايغ الفصل الأول 2010- 2011 البرمجة الشيئية
الكلية الجامعية للعلوم التطبيقية لغة برمجة حديثة (1) COMP 2301 د.سناء الصايغ الفصل الأول البرمجة الشيئية

2 البرمجة الشيئية الصنف والكائن (class and object) Control Statements
تعتبر الأصناف (classes) وحدة البرنامج في لغة جافا. الصنف عبارة عن قالب (مخطط) يحتوي ويمثل الصفات للكائنات التي تنتمي لهذا الصنف. الكائن هو عبارة عن شيء حقيقي لواقع الحياة وهو ينبثق من كل صنف. بحيث يحتوي هذا الصنف على جميع صفات الكائنات التي تنتمي اليه.  Page 2 2

3 الصنف والكائن (class and object)
Control Statements البرمجة الشيئية الصنف والكائن (class and object) مثال  Page 3 3

4 تعريف الصنف وتحديد مكوناته (class declaration)
Control Statements البرمجة الشيئية تعريف الصنف وتحديد مكوناته (class declaration) يتم تعريف الأصناف عن طريق استخدام الكلمة المحجوزة class حيث يتبعها اسم الصنف. يتبع اسم الصنف قواعد التسمية نفسها التي يتبعها المتغير.  Page 4 4

5 تعريف الصنف وتحديد مكوناته (class declaration)
Control Statements البرمجة الشيئية تعريف الصنف وتحديد مكوناته (class declaration) 3 // Time1 class declaration maintains the time in 24-hour format. 4 public class Time1 5 { 6 private int hour; // 7 private int minute; // 8 private int second; // 9 // set a new time value using universal time; ensure that // the data remains consistent by setting invalid values to zero public void setTime( int h, int m, int s ) 13 hour = ( ( h >= 0 && h < 24 ) ? h : 0 ); // validate hour minute = ( ( m >= 0 && m < 60 ) ? m : 0 ); // validate minute second = ( ( s >= 0 && s < 60 ) ? s : 0 ); // validate second } // end method setTime  Page 5 5

6 تعريف الصنف وتحديد مكوناته (class declaration)
Control Statements البرمجة الشيئية تعريف الصنف وتحديد مكوناته (class declaration) // convert to String in universal-time format (HH:MM:SS) public String toUniversalString() { return String.format( "%02d:%02d:%02d", hour, minute, second ); } // end method toUniversalString 24 // convert to String in standard-time format (H:MM:SS AM or PM) public String toString() { return String.format( "%d:%02d:%02d %s", ( ( hour == 0 || hour == 12 ) ? 12 : hour % 12 ), minute, second, ( hour < 12 ? "AM" : "PM" ) ); } // end method toString 32 } // end class Time1  Page 6 6

7 الكائن (Object) Control Statements البرمجة الشيئية
تتم عملية استخدام الأصناف عن طريق انشاء كائنات (objects) تكون على شكل نسخ من هذه الأصناف. تتم عملية انشاء النسخ على النحو التالي: تعريف متغير من نوع الصنف المراد استخدامه والذي تم تعريفه مسبقا انشاء كائن حقيقي من نفس الصنف باستخدام كلمة new. يتم التعامل مع الكائن باستخدام اسم المتغير الذي يشير اليه متبوعا بنقطة ثم احد المتغيرات او الطرق.  Page 7 7

8 الكائن (Object) – استخدام الصنف (time)
Control Statements البرمجة الشيئية الكائن (Object) – استخدام الصنف (time) 2 // Time1 object used in an application. 3 4 public class Time1Test 5 { 6 public static void main( String args[] ) 7 { // create and initialize a Time1 object Time1 time = new Time1(); // invokes Time1 constructor 10 // output string representations of the time System.out.print( "The initial universal time is: " ); System.out.println( time.toUniversalString() ); System.out.print( "The initial standard time is: " ); System.out.println( time.toString() ); System.out.println(); // output a blank line  Page 8 8

9 الكائن (Object) – استخدام الصنف (time)
Control Statements البرمجة الشيئية الكائن (Object) – استخدام الصنف (time) // change time and output updated time time.setTime( 13, 27, 6 ); System.out.print( "Universal time after setTime is: " ); System.out.println( time.toUniversalString() ); System.out.print( "Standard time after setTime is: " ); System.out.println( time.toString() ); System.out.println(); // output a blank line 25 // set time with invalid values; output updated time time.setTime( 99, 99, 99 ); System.out.println( "After attempting invalid settings:" ); System.out.print( "Universal time: " ); System.out.println( time.toUniversalString() ); } // end main 32 } // end class Time1Test  Page 9 9

10 الصنف والكائن (class and object)
Control Statements البرمجة الشيئية الصنف والكائن (class and object) الصنف هو القالب الذي نستخدمه في انشاء الكائنات Object وكل صنف له خصائصه attributes ومتغيراته Member variables وله سلوكه (الطرق) Member Methods. المنشآت (Constructs): يستخدم لانشاء الكائنات من صنف معين واعطاء قيم اولية لمتغيراته عند انشاءه اول مرة. وهي تشابه الطرق بالشكل ولكن تشترط فيها النقاط التالية: اسم المنشأ يجب انا يطابق اسم الفصيل مع مراعات حالة الأحرف (كبيرة او صغيرة). المنشأ لا يقوم بترجيع اي متغير لذا لا يتم تحديد نوع المتغير المرجع من المنشأ او حتى كتابة void.  Page 10 10

11 تعريف الصنف وتحديد مكوناته (class declaration)
Control Statements البرمجة الشيئية تعريف الصنف وتحديد مكوناته (class declaration) public class BankAccount { // The first constructor is the default constructor sets balance to zero public BankAccount() { balance = 0; } // The second constructor sets balance to initial to initial balance public BankAccount(double initialBalance) { balance = initialBalance; // The deposit method adds an amount to instance variable balance public void deposit(double amount) { balance = balance + amount; // The withdraw method subtracts an amount from instance variable balance  Page 11 11

12 تعريف الصنف وتحديد مكوناته (class declaration)
Control Statements البرمجة الشيئية تعريف الصنف وتحديد مكوناته (class declaration) public void withdraw(double amount) { balance = balance - amount; } // The transfer method withdraw an amount from this object and deposit // to other object balance public void transfer(BankAccount other , double amount) { withdraw(amount); other.deposit(amount); // The getBalance method returns the current balance public double getBalance() { return balance; // The instance variable balance private double balance; }  Page 12 12

13 الوراثة (inheritance)
Control Statements البرمجة الشيئية الوراثة (inheritance) الوراثة (inheritance): الوراثة في لغة البرمجة هي عبارة عن خاصية تقوم فيها الأصناف الجديدة التي نقوم بتعريفها بوراثة متغيرات وطرق صنف آخر. حيث يعتبر الصنف الجديد امتدادا للصنف القديم الذي تمت وراثته. خصائص الوراثة: يتم الاستفادة من الطرق التي تم تعريفها مسبقا في فصائل أخرى مما يؤدي الى توفير الجهد. الفصيلة التي تورث تسمى الفصيلة العليا superclass لأنها تحتوي على الطرق والمتغيرات المشتركة. الفصيلة التي ترث تسمى الفصيلة الفرعية subclass لأنها تحتوي على الطرق والبيانات المضافة. لتحقيق عملية الوراثة نستخدم الكلمة المحجوزة extends ثم نذكر اسم الفصيل الذي نريد وراثته. عند عدم تحديد صنف نرث منه، تفترض لغة جافا انك ترث من الفصيلة الأم Object.  Page 13 13

14 الكائن (Object) – استخدام الصنف (time)
Control Statements البرمجة الشيئية الكائن (Object) – استخدام الصنف (time) public class SavingAccount extends BankAccount // The SavingAccount constructor { public SavingAccount(double rate) { interestRate = rate; } // addInterest method public void addInterest() { double interest = getBalance()*interestRate/100; deposit(interest); // The SavingAccount instance variable private double interestRate;  Page 14 14

15 تمرين 1 Control Statements البرمجة الشيئية
اكتب برنامجا يقوم بتعريف كائنين من الصنف BankAccount حيث يحتوي كل حساب (كائن) على مبلغ وقدره 5500 شيكل ثم قم باستخدام الطرق المتوفرة في الصنف لعمل التالي: ايداع مبلغ وقيمته 1000 شيكل في الحساب الأول. سحب مبلغ وقدره 2000 شيكل من كلا الحسابين. تحويل مبلغ وقدره 500 شيكل من الحساب الأول الى الحساب الثاني. طباعة كشف الحساب في لكلا الحسابين.  Page 15 15


Download ppt "د.سناء الصايغ الفصل الأول البرمجة الشيئية"

Similar presentations


Ads by Google