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