منهج cs602 java programming خريف 2016-محاضرة 1

Page 1

Sebha University Faculty of Sciences Computer Department

‫جامعة سبها‬ ‫كلية العلوم‬ ‫قسم الحاسوب‬

CS602: I ‫برمجة جافا‬ Java Programming I ‫اعداد‬ ‫ مبروكه علي معيوف‬.‫د‬

2016 ‫خريف‬


‫‪Fall2016‬‬

‫‪CS602: Java Programming‬‬

‫محتويات املقرر‬ ‫‪ .1‬تمهيد‬ ‫‪ ‬مفهوم البرمجة الشيئية‬ ‫‪ ‬مفهوم البرمجة االجرائية‬ ‫‪ ‬الفرق بين البرمجة االجرائية و البرمجة الشيئية‬ ‫‪ ‬الفرق بين البرمجة الشيئية في لغة الجافا و ‪C++‬‬ ‫‪ ‬خصائص البرمجة الشيئية‬ ‫‪ ‬نبذة مختصرة عن لغة الجافا‬ ‫‪ ‬مزايا البرمجة بلغة الجافا‬ ‫‪ ‬مكتبات الجافا ‪java class libraries‬‬ ‫‪ .2‬بيئة تطوير برنامج جافا‬ ‫‪ .a‬املراحل التي يمر بها برنامج جافا‬ ‫‪ .b‬بيئة ‪ JDK‬و االدوات املصاحبة لها ‪JDK Environment & Tools‬‬ ‫‪ .c‬خصائص برنامج جافا‬ ‫‪ .3‬برمجة تطبيق جافا‬ ‫‪ ‬الفرق بين تطبيق جافا ‪ java application‬و جافا ابلت ‪java applet‬‬ ‫‪ ‬اساسيات برنامج جافا‬ ‫‪ ‬الهيكلية العامة لبرنامج جافا‬ ‫‪ .4‬القواعد االساسية لبرمجة جافا‬ ‫‪ ‬جمل االخراج ‪output statements‬‬ ‫‪System.out.println o‬‬ ‫‪System.out.print o‬‬ ‫‪System.out.printf o‬‬ ‫‪ ‬جملة التضمين ‪import statement‬‬ ‫‪ ‬جمل االدخال ‪input statement‬‬ ‫‪ o‬االدخال بواسطة ‪Scanner class‬‬ ‫‪2‬‬

‫‪Dr. Mabroka A.M.‬‬


‫‪CS602: Java Programming‬‬

‫‪Fall2016‬‬

‫‪Dr. Mabroka A.M.‬‬

‫‪ ‬انواع الثوابت و املتغيرات في لغة جافا‬ ‫‪ ‬العمليات في لغة الجافا‬ ‫‪ o‬العمليات املنطقية‬ ‫‪ o‬العمليات الحسابية‬ ‫‪ o‬العمليات العالئقية‬ ‫‪ ‬جمل التكرار‬ ‫‪for statement o‬‬ ‫‪while statement o‬‬ ‫‪ ‬جمل التحكم‬ ‫‪If statement o‬‬ ‫‪switch statement o‬‬ ‫‪If else statement o‬‬ ‫‪ ‬املصفوفات في لغة جافا‬ ‫‪ o‬تعريف املصفوفة‬ ‫‪ o‬استخدام املصفوفة‬ ‫‪ .5‬التصنيفات و الكائنات ‪classes & objects‬‬ ‫‪ ‬مفهوم برمجة الكائنات ‪object-oriented programming concept‬‬ ‫‪ ‬مزايا البرمجة باستخدام )‪OOP (Object-Oriented Programming‬‬ ‫‪ 1.1‬التصنيفات ‪classes‬‬ ‫‪ o‬مفهومها‪ ،‬مكوناتها (الخصائص و السلوك ‪)attributes and behavior‬ـ الشكل العام‬ ‫لها‪.‬‬ ‫‪ o‬متغير العضو‪member class‬‬ ‫‪ o‬متغير التصنيف )‪class variable (static variable‬‬ ‫‪ o‬دالة البناء ‪constructor‬‬ ‫‪ o‬دالة التصنيف ‪class method‬‬ ‫‪ o‬الدوال العادية‬ ‫‪ ‬الشكل العام لها‪ ،‬استدعائهاـ دالة التصنيف)‪class method (static method‬‬ ‫‪ o‬الدوال املهيمنة ‪overriding methods‬‬ ‫‪3‬‬


‫‪CS602: Java Programming‬‬

‫‪Fall2016‬‬

‫‪ o‬الدوال الزائدة ‪overloading methods‬‬ ‫‪ 2.1‬الكائنات ‪objects‬‬ ‫‪ o‬مفهومها‪ ،‬الشكل العام لها‪.‬‬ ‫‪ o‬تفسير جملة تكوين الكائن ‪explaining of object creation‬‬ ‫‪ 5.1‬املؤثر ‪( this‬مفهومه‪ ،‬استخداماته)‬ ‫‪ .6‬معدالت الوصول ‪access modifiers‬‬ ‫‪ ‬الجزء االول ‪part 1‬‬ ‫‪ o‬املعدل الساكن ‪static modifier‬‬ ‫‪ o‬املعدل النهائي‪final modifier‬‬ ‫‪ o‬املعدل املجرد ‪abstract modifier‬‬ ‫‪ ‬الجزء الثاني ‪part 2‬‬ ‫‪ o‬املعدل العام ‪public modifier‬‬ ‫‪ o‬املعدل الخاص‪private modifier‬‬ ‫‪ o‬املعدل املحمي ‪protected modifier‬‬ ‫‪ o‬املعدل االفتراض ي ‪default modifier‬‬ ‫‪ .7‬استخدامات معدالت الوصول‬ ‫‪ .8‬الحزم ‪packages‬‬ ‫‪ .a‬تكوين الحزمة ‪package creation‬‬ ‫‪ .b‬استخدامات الحزمة‬ ‫‪ .9‬الوراثة ‪inheritance‬‬ ‫‪ ‬مفهومها‪ ،‬الشكل العام لها‪ ،‬اهميتها‪ .‬تطبيقاتها‪.‬‬ ‫‪ .11‬تعدد االشكال ‪polymorphism‬‬ ‫‪ ‬مفهومه‪ ،‬اهميته‪ .‬تطبيقاته‪.‬‬ ‫‪4‬‬

‫‪Dr. Mabroka A.M.‬‬


‫‪CS602: Java Programming‬‬

‫‪Fall2016‬‬

‫‪Dr. Mabroka A.M.‬‬

‫‪ .11‬التصنيف املركب ‪composite class‬‬ ‫‪ ‬مفهومه‪ ،‬اهميته‪ .‬تطبيقاته‪.‬‬ ‫‪ .12‬التصنيفات املتداخلة ‪inner classes‬‬ ‫‪ ‬مفهومها‪ ،‬اهميتها‪ .‬تطبيقاتها‪.‬‬ ‫‪ .13‬لغة الجافا و الواجهات الرسومية )‪java language and graphical user interfaces(GUI‬‬ ‫‪ ‬مفهوم ‪ ،GUI‬االدخال و االخراج باستخدام ‪GUI classes‬‬ ‫‪ ‬امثلة تطبيقية على ‪GUI‬‬ ‫‪ .14‬الواجهات (الوصالت) ‪interfaces‬‬ ‫‪ ‬مفهومها‪ ،‬اهميته‪ .‬تطبيقاته‪.‬‬ ‫‪ .15‬معالجة الحدث ‪event handling‬‬ ‫‪ .16‬معالجة االستثناء ‪exception handling‬‬ ‫‪ .17‬امللفات‬ ‫‪ ‬طرق االدخال و االخراج و استخدام امللفات‬ ‫**يصاحب املواضيع املذكورة اعاله تطبيق عملي لكل ما تم ذكره ‪،‬بواقع ساعتين اسبوعيا‬ ‫ليتمكن الطالب من إنهاء العمل املطلوب أثناء املحاضرة‪.‬‬

‫‪5‬‬


Dr. Mabroka A.M.

Fall2016

CS602: Java Programming

‫جدول اعمال السنة واالمتحان النهائي‬ ‫االسبوع املستحق‬

‫التقييم‬

% ‫النسبة‬

2116/11/24

‫امتحان نصفى‬

20

‫كل اسبوع‬

‫االختبارات‬،‫الحضور‬

10

‫والواجبات‬ ‫االسبوع الثالث عشر‬

‫االمتحان العملي‬

20

‫حسب جدول االمتحانات‬

‫االمتحان نهائى‬

50

‫املراجع العربية‬ ‫ الطريق الى احتراف لغة‬.‫ قدري طلعت حسين‬،‫ مصطفى ماجد‬،‫] عزب محمد عزب‬1[ .2002 ،‫ دار الكتب العلمية للنشر و التوزيع‬.Java ‫املراجع االنجليزية‬ [1] Deitel, P. J. & Deitel, H. M. ,JAVA HOW TO PROGRAM. Pearson Educational International, 2007. [2] Myatt, A., Pro NetBeans IDE 5.5 Enterprise Edtition. Apress, 2007. [3] Schildt, H., Java 2 the complete reference. McGraw-Hill. 2002. [4] Kendal, S., Object Oriented Programming using Java. 2012. Websites: https://www.java.com https://netbeans.org http://www.bookboon.com Download free books at Bookboon.com.

6


‫‪CS602: Java Programming‬‬

‫‪Fall2016‬‬

‫‪Dr. Mabroka A.M.‬‬

‫‪ .1‬تمهيد‬ ‫اللغة ‪ language‬هي مجموعة من الكلمات و القوانين التي ترتب هذه الكلمات في جملة لها‬ ‫معنى‪ .‬و يحتاج االنسان للغة ‪ language‬ليتواصل مع االخرين‪ ،‬و بنفس الطريقة التي يتواصل‬ ‫ً‬ ‫فيها الناس باستخدام اللغة‪ ،‬يتواصل االنسان مع الحاسب االلي باستخدام اللغة أيضا (لغات‬ ‫البرمجة ‪ )programming language‬حيث تتكون لغة البرمجة من مجموعة من التعليمات‬ ‫املتتالية ‪ sequence of instructions‬تسمى برنامج ‪ .program‬و توجد انواع عديدة من‬ ‫لغات البرمجة من اهمها‪ :‬البرمجة االجرائية ‪ procedural programming‬و البرمجة الشيئية‬ ‫أو البرمجة املوجهة نحو الكائنات)‪.Object Oriented Programming (OOP‬‬ ‫‪ ‬مفهوم البرمجة الشيئية‬ ‫يتكون العالم من حولنا من مجموعة من الكائنات ‪ Objects‬التي لها صفات (خصائص)‬ ‫ً‬ ‫‪ attributes‬و سلوك ‪ .behavior‬و بناءا على هذا املفهوم‪ ،‬جاءت فكرة البرمجة الشيئية او‬ ‫املوجهة نحو الكائنات‪ .‬حيث تكمن فكرة ‪ OOP‬في دمج البيانات )‪ (attributes‬مع الوظائف او‬ ‫الدوال )‪ (behavior‬التي تعمل على هذه البيانات في وحدة مستقلة ‪ a single unit‬تسمى‬ ‫كائن ‪ .Object‬لذا‪ُ ،‬يقسم البرنامج في ‪ OOP‬الى كائنات تتفاعل مع بعضها البعض خالل فترة‬ ‫تنفيذ البرنامج‪.‬‬ ‫‪ ‬مفهوم البرمجة االجرائية‬ ‫كانت بداية البرمجة اجرائية‪ ،‬حيث يتكون البرنامج من مجموعة من التعليمات ‪instructions‬‬ ‫‪ or statements‬املتتالية التي يتم تنفيذها واحدة تلو االخرى‪ .‬و مع ازدياد حجم البرنامج‪ ،‬تم‬ ‫ً‬ ‫تقسيمه الى وحدات صغيرة تسمى إجراء ‪( procedure‬و يطلق عليها أيضا وظيفة ‪ function‬أو‬ ‫دالة ‪ٌ )method‬‬ ‫كل منها تؤدي مهمة محددة‪ .‬و مع استمرار ازدياد حجم البرنامج اكثر فأكثر‪،‬‬ ‫ظهرت البرمجة الهيكلية ‪ structured programming‬التي يتم فيها وضع مجموعة من الدوال‬ ‫في وحدة اكبر تسمى ‪( module‬في الغالب تكون ملف ‪ .) file‬و مع ازدياد حجم البرنامج اكثر‬ ‫ً‬ ‫فأكثر‪ ،‬اصبحت اكثر تعقيدا مما ادى الى اخفاق معظمها و تبين فيما بعد انه ثمة قصور و‬ ‫ضعف في البرمجة االجرائية بأنواعها‪.‬‬ ‫‪ ‬الفرق بين البرمجة االجرائية و البرمجة الشيئية‬ ‫تعاني البرمجة االجرائية من عدة مشاكل من بينها الوصول الالمحدود للبيانات في البرنامج‪ ،‬و‬ ‫عدم وجود عالقة بين البيانات و الدوال املوجودة فيها في كثير من االحيان مما ادى الى كثرة‬ ‫الدوال و تشعبها و االرتباط املتعدد بينها و بالتالي ضعف هيكلية البرنامج و صعوبة تعديله‪ .‬و‬ ‫مع ظهور البرمجة الشيئية‪ ،‬و نمذجة العالم الحقيقي‪ ،‬و التعامل مع الكائنات البرمجية‪ ،‬تم‬

‫‪7‬‬


‫‪CS602: Java Programming‬‬

‫‪Fall2016‬‬

‫‪Dr. Mabroka A.M.‬‬

‫ً‬ ‫القضاء على معظم املشاكل السابقة التي واجهت البرمجة االجرائية خصوصا في املشاريع التي‬ ‫تتطلب برامج ضخمة و معقدة‪.‬‬ ‫‪ ‬الفرق بين البرمجة الشيئية في لغة الجافا و ‪C++‬‬ ‫ً‬ ‫مفهوم البرمجة الشيئية يكاد يكون واحدا في اغلب اللغات‪ ،‬حيث يرتكز على تكوين البرنامج‬ ‫من مجموعة من الكائنات‪ .‬االختالف االساس ي يكمن في اختالف تعليمات اللغة و هيكلية‬ ‫ً‬ ‫دوالها‪ .‬اال ان هناك تشابه كبير بين لغة ‪ java‬و لغة ‪ C++‬نظرا الشتقاق لغة ‪ Java‬من لغة‬ ‫‪.C++‬‬ ‫‪ ‬خصائص البرمجة الشيئية‬ ‫تتميز البرمجة الشيئية بخاصية حماية البيانات و تغليفها في وحدة منفردة‪ .‬كما تتميز بخاصية‬ ‫الوراثة و امكانية اعادة االستخدام لوحدات البرنامج دون الحاجة ملعرفة تفاصيلها و كيفية‬ ‫عملها بدقة‪.‬‬ ‫‪ ‬نبذة مختصرة عن لغة الجافا‬ ‫ً‬ ‫في العام ‪ 1995‬اصبحت ال‪ world wide web‬اكثر انتشارا و شعبية مما حدا بشركة ‪Sun‬‬ ‫‪ Microsoft‬بالتعريف بلغة جديدة هي لغة جافا ‪ Java programming language‬و املشتقة‬ ‫من لغة ‪ C++‬و ذلك الضافة ‪ dynamic content‬مثل ‪ interactivity & animations‬الى‬ ‫‪ .web pages‬و في العام ‪ ،1991‬تم عرض هذه اللغة في مؤتمر يتعلق بالصناعات حيث لفتت‬ ‫انظار املستتمرين و التجار‪.‬‬ ‫‪ ‬مزايا البرمجة بلغة الجافا‬ ‫‪ o‬تستخدم في تطوير ‪large scale enterprise applications‬‬ ‫‪ o‬تستخدم لتعزيز الوظائف الخاصة ب‪ web servers‬مثل التطبيقات الخاصة ألجهزة‬ ‫املستهلك كا ‪cell phones, pagers, personal digital assistance‬‬ ‫‪ ‬مكتبات الجافا ‪java class libraries‬‬ ‫يتكون البرنامج في لغة الجافا من قطع تسمى ‪( classes‬التصانيف‪ ،‬الفصائل‪ ،‬الفئات)‪ .‬هذه‬ ‫ال ‪ Classes‬تحتوي على الخصائص ‪ attributes‬والدوال‪ methods‬حيث تقوم ‪methods‬‬ ‫باداء مهام تتعلق ب ‪ Classes‬وترجع معلومات عن هذه الوظائف عندما تنتهي منها‪ .‬هناك‬ ‫ً‬ ‫مجموعة هائلة من ‪ java class libraries‬و التي يطلق عليها ايضا‬ ‫‪Java APIs Interfaces‬‬ ‫‪Application programming interfaces‬‬ ‫ً‬ ‫تزود ‪ class libraries‬مبدئيا من قبل ‪ ،compiler‬ولكن الكثير منها يزود من قبل‬ ‫‪.Independent software vendors‬‬ ‫‪8‬‬


Dr. Mabroka A.M.

Fall2016

CS602: Java Programming

Typical java development environment ‫ بيئة تطوير برنامج جافا نموذجية‬.2 ‫ املراحل التي يمر بها برنامج جافا‬ :‫ وهذه املراحل هي‬،‫يمر برنامج بلغة الجافا بخمس مراحل حتى يصل الى مرحلة التنفيذ‬

1. edit

Editor

2. Compile

Compiler C

Disk

Java Program is created in an editor and stored on the disk in a file ending with .java ‫ و يُخزن على‬،‫يكون برنامج جافا في أي محرر النصوص‬ java ‫القرص في ملف ينتهي بنقطة و امتداد‬

Disk

Compiler creates bytecodes and stored them in the disk in a file ending with .class ‫المترجم يكون شفرات بايت و يخزنها على القرص في‬ class ‫ملف ينهي بنقطة و امتداد‬

memory

3. Load

Class loader

4. Verify

Bytecode verifier

5. Execute

JVM

Class loader reads .class files from the disk and put them in the memory. ‫ من القرص و‬classes‫محمل التصنيف يقرأ ملفات ال‬ .‫يضعها في الذاكرة‬

. . .

Bytecodes verifier confirms that all bytecodes are valid. ‫محقق شفرة البايت يتحقق و يتأكد من أن كل شفرات‬ .‫البايت صحيحة و ال قيود عليها‬

JVM (Java virtual machine) reads bytecodes and JIT (just-intime) compiles them into a computer language. ‫ تترجمها الى لغة الحاسوب‬JIT ‫الة جافا االفتراضية تقرأ شفرات البايت و‬ .‫الموجود عليه البرنامج‬

JDK Environment & Tools ‫ و االدوات املصاحبة لها‬JDK ‫ بيئة‬  

JVM is a part of JDK (java development kit) and the foundation of java platform. JVM is a java a software application that simulates a computer and hides the underlying operating system and hardware from the programs that interact with VM.

‫ خصائص برنامج جافا‬ ‫ يمكن تنفيد برنامج بلغة جافا على أي جهاز حاسوب مهما كان نوع نظام التشغيل‬.a JVM ‫بشرط ان يحتوي هذا الجهاز على‬ Java bytecode are portable .b .‫ ثم استخدامها من قبل البرنامج‬class ‫ يحمل أي‬Class loader .c 9


‫‪CS602: Java Programming‬‬

‫‪Fall2016‬‬

‫‪Dr. Mabroka A.M.‬‬

‫‪ .3‬برمجة تطبيق جافا‬ ‫‪ ‬الفرق بين تطبيق جافا ‪ java application‬و جافا ابلت ‪java applet‬‬ ‫التطبيق هو برنامج او مجموعة من البرامج املرتبطة مع بعضها البعض‪ .‬و ُيعد تطبيق جافا‬ ‫‪ java application‬مشابه لتطبيقات البرامج االخرى مثل تطبيق لغة ‪ C‬او ‪ C++‬املكتبية الغير‬ ‫ً‬ ‫ُ‬ ‫مخصصة للتنفيذ على شبكة االنترنت بعكس برامج ‪ java applet‬التي تصمم خصيصا‬ ‫لإلنترنت‪ ،‬و التي يتم استدعائها من خالل ملف ال‪.HTML‬‬ ‫‪ ‬اساسيات برنامج جافا‬ ‫عند كتابة برنامج بلغة الجافا‪ ,‬يجب مراعاة النقاط التالية ‪:‬‬ ‫‪ .1‬يجب ان يحتوي البرنامج على ‪ class‬من نوع ‪ public‬تتضمن الدالة االساسية ‪main‬‬ ‫التي من خاللها يتم تنفيد البرنامج ‪public static void main‬‬ ‫‪ .2‬يجب ان يكون اسم البرنامج هو نفس اسم ‪ class‬متبوع بامتداد ‪ .java‬و ان يبدا اسم‬ ‫‪ class‬بحرف كبير‪.‬‬ ‫‪ .5‬يجب تضمين اسم ‪ package‬في بداية البرنامج عند الحاجة الستخدامها‪.‬‬ ‫‪ .4‬يجب مراعاة الفارق بين الحروف الكبيرة والصغيرة في اسماء املتغيرات‪ ,‬مثال ‪ A‬تختلف‬ ‫عن ‪.a‬‬ ‫‪ .1‬يجب ان يبدا كل تصريح ب‪ class‬بقوس بداية { وينتهي بقوس نهاية }‪.‬‬ ‫‪ .6‬يجب ان تنتهي كل جملة ‪ statement‬في البرنامج بالفاصلة املنقوطة‪.‬‬ ‫‪ .7‬يجب ان ال يحتوى اسم املتغيرة او الثابت في البرنامج على فراغ وان ال تبدا برقم و ان‬ ‫ال تكون كلمة محجوزة‪.‬‬ ‫‪ .8‬مراعاة ادراج التعليقات لتوضيح عمل البرنامج ‪.‬‬ ‫‪ ‬الهيكلية العامة لبرنامج جافا‬ ‫‪/* my first program */‬‬ ‫;)‪package (package name‬‬ ‫;‪import …………….‬‬ ‫‪public class‬‬ ‫{‬ ‫}…………{ )‪Public static void main (String [] args‬‬ ‫}‬

‫‪10‬‬


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