برمجة جافا - محاضرة 2 - PDF
Document Details
Uploaded by DynamicNash3049
الجامعة الوطنية الخاصة
د. لينا مراد
Tags
Summary
هذه وثيقة مختصرة لمحاضرة في برمجة جافا. تغطي المحاضرة شرحاً للـ Scanner وامثلة عليه، بالإضافة إلى شرح مبسط لبنى التحكم في جافا. تُقدم هذه المحاضرة أمثلة كود.
Full Transcript
# لغات برمجة ١ ## المحاضرة الثانية ### د. لينا مراد ## Scanner - يمكن أن يكون مصدر النص مسار الملف أو قناة الدخل للإدخال من لوحة المفاتيح - أو سلسلة نصية معرفة مسبقاً .... - أهم توابع الصف Scanner: | القيمة المعادة | التابع | |:---------------|:----------------| | String | nex...
# لغات برمجة ١ ## المحاضرة الثانية ### د. لينا مراد ## Scanner - يمكن أن يكون مصدر النص مسار الملف أو قناة الدخل للإدخال من لوحة المفاتيح - أو سلسلة نصية معرفة مسبقاً .... - أهم توابع الصف Scanner: | القيمة المعادة | التابع | |:---------------|:----------------| | String | next() | | boolean | nextBoolean() | | byte | nextByte() | | double | nextDouble() | | float | nextFloat() | | int | nextInt() | | String | nextLine() | | long | nextLong() | | long | nextShort() | ## مثال ١: ما هو خرج الكود التالي: ```java import java.util.Scanner; public class test { public static void main(String[] args) { String s = "Hello World! 3 + 3.0 = 6"; Scanner scanner = new Scanner(s); System.out.println(scanner.nextLine()); System.out.println("Closing Scanner..."); scanner.close(); System.out.println("Scanner Closed."); } } ``` **الخرج:** ``` Hello World! 3 + 3.0 = 6 Closing Scanner... Scanner Closed. ``` ## مثال ٢: ما هو خرج الكود التالي: ```java import java.util.Scanner; public class test { public static void main(String[] args) { String s = "Hello World! 3 + 3.0 = 6"; Scanner scanner = new Scanner(s); System.out.println(scanner.next ()); System.out.println("Closing Scanner..."); scanner.close(); System.out.println("Scanner Closed."); } } ``` **الخرج:** ``` Hello Closing Scanner... Scanner Closed. ``` ## مثال ٣: : أكتب برنامج لإدخال عددين وطباعة ناتج الجمع ```java import java.util.Scanner; public class test { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("enter the first Num "); int x=scanner.nextInt(); System.out.print("enter the second Num "); int y=scanner.nextInt(); int z=x+y; System.out.println("the result is "+z); } } ``` **الخرج:** ``` enter the first Num 10 enter the second Num 20 the result is 30 ``` ## بنى التحكم في جافا - **if الشرطية:** - **الشكل البسيط:** ```java if(condition) { statement; //executes when condition is true } ``` - **if...else...** ```java if(condition) { statement1; //executes when condition is true } else { statement2; //executes when condition is false } ``` - **الشكل العام : if..else if...** ```java if(condition 1) { statement 1; }//executes when condition 1 is true else if(condition 2) { statement 2; } //executes when condition 2 is true else { statement 2; } //executes when all the conditions are false ``` - **if المتداخلة (Nested if) : أكثر من تعليمة if من الأشكال السابقة** ## مثال ٤ : ```java public class test { public static void main(String[] args) { int x=50; if(x<=100 && x>=60) if(x>=90) System.out.println("A"); else if(x>=80) System.out.println("B"); else System.out.println("C"); else System.out.println("fail"); } } ``` - **Switch تعليمة .** ```java switch (expression) { case value1: statement1; break; case valueN: statementN; break; default: default statement; } ``` ## بنى التحكم في جافا - **الحلقات التكرارية :** - **الشكل العام للحلقة :for** ```java for(initialization; condition; increment/decrement) { //block of statements } ``` - يمكن استخدام الحلقة for للمرور على المصفوفات واجراء العمليات المطلوبة دون استخدام عداد (تشبه الحلقة foreach) ## مثال ٥ : ```java public class test { public static void main(String[] args) { String[] names = {"Java","C","C++","Python","JavaScript"}; System.out.println("Printing the content of the array names:\n"); for(String name:names) { System.out.println(name); } } } ``` ## بنى التحكم في جافا - **While : الشكل العام للحلقة :** ```java while(condition){ //looping statements } ``` - **do - While : الشكل العام للحلقة :** ```java do { //statements } while (condition); ``` ## :continue و break تعلیمی - break تستخدم مع الحلقات التكرارية أو switch تستخدم للخروج من الحلقة والانتقال بالتنفيذ الى التعليمة التي تلي الحلقة. - continue تستخدم مع الحلقات التكرارية وتستخدم لتخطي الجزء المتبقي من تعليمات الحلقة التكرارية والعودة الى بداية تعليمات الحلقة في المرور التالي للحلقة. ## تسمية المعرفات المختلفة في جافا | نوع المعرفات | قواعد التسمية | |:------------|:--------------------| | صف class | | | | - يجب أن يبدأ بحرف كبير. | | | - يجب أن يكون اسمًا واضحاً مثل Color أو Thread. | | | - استخدم الكلمات المناسبة بدلاً من الاختصارات. | | الواجهة | | | | - يجب أن يبدأ بحرف كبير. | | | - يجب أن يكون صفة مثل Runnable أو Remote| | | - استخدم الكلمات المناسبة بدلاً من الاختصارات. | | الطريقة | | | | - يجب ان يبدأ بحرف صغير. | | | - يجب ان يكون فعلا مثل ()print() main| | | - إذا كان الاسم يحتوي على كلمات متعددة ، فيبدأ بحرف صغير | | | - متبوعا بحرف كبير في بداية كل كلمة مثل actionPerformed(). | | المتحولات | | | Variable | - يجب أن يبدأ بحرف صغير مثل name, id | | | - إذا كان الاسم يحتوي على كلمات متعددة، فيبدأ بحرف صغير متبوعا بحرف | | | - كبير في بداية كل كلمة مثل lastName, firstName | | | - تجنب استخدام متغيرات مكونة من حرف واحد مثل z y x | | الحزم | | | Package | - يجب أن يكون حرفًا صغيرًا مثل lang ,. java | | | - إذا كان الاسم يحتوي على كلمات متعددة، فيجب فصلها بنقاط (.) مثل java.lang java.util | | الثوابت | | | Constant | - يجب أن يكون الاسم بأحرف كبيرة مثل RED و .YELLOW | | | - إذا كان الاسم يحتوي على كلمات متعددة، فيجب فصلها بعلامة سفلية (_) مثل MAX_PRIORITY. | ## ملاحظة: - تستخدم جافا camel-case syntax في تسمية المعرفات الصف والواجهة والطريقة والمتغير - والتي تعني إذا كان الاسم مؤلف من كلمتين، فستبدأ الكلمة الثانية دائمًا بحرف كبير مثل ActionListener و ActionEvent و firstName وما إلى ذلك. ## البرمجة بالكائنات (غرضية التوجه) تعتبر لغة جافا من أشهر لغات البرمجة بالكائنات (Object Oriented Programming Languages) تُقوم البرمجة بالكائنات على مبدأ أن كل فكرة أو موضوع في النظام المعين هو عبارة عن كائن (object) له صفات (properties) وسلوك (behavior) يظهر بها في النظام ويتفاعل عن طريقها مع الكائنات الأخرى في النظام. وتقوم على مبدا أن النظام هو مجموعة من الكائنات التي تحتوي على صفاتها الخاصة والتي لا تسمح الكائنات الأخرى بالوصول إليها. وهذه الكائنات تتفاعل مع بعضها البعض بواسطة طرق محددة سلفا وهي الدوال الخاصة بالكائن. ## أهم خصائص البرمجة غرضية التوجه - **Abstraction** التجريد - **Class** الصفوف - **Polymorphism** تعدد الأشكال - **Inheritance** الوراثة - **Encapsulation** التغليف - **Object** الأغراض ## الصفوف والأغراض في جافا - في تقنية البرمجة غرضية التوجه، نقوم بتصميم برنامج باستخدام الكائنات والصفوف. - الكائن في جافا هو كيان مادي ومنطقي، بينما الصف في جافا هي كيان منطقي فقط. ```java class <class_name> { // ;field اسم الحقل نوع البيانات محدد وصول اختياري {.... (لائحة الوسطاء ) اسم التابع نوع القيمة المعادة محدد وصول اختياري // ;method } ``` ## محددات الوصول في جافا (Java Access Modifiers) - Java Access Modifiers ![image](picture.jpg) - Java Access Modifiers | Access Modifier | Within Class | Within Package | Outside Package by Subclass Only | Outside Package | |:---------------|:-------------|:---------------|:----------------------------------|:----------------| | Private | Y | N | N | N | | Default | Y | Y | N | N | | Protected | Y | Y | Y | N | | Public | Y | Y | Y | Y | ## مثال ٦ - أكتب صف لطالب يتضمن ( الرقم- الاسم- سنة الميلاد) وتابع لطباعة بيانات الطالب. - وصف main يتضمن بناء غرض من الصف وطباعة البيانات. ```java package MyProject; class Student { private int id; private String name; private int yearOfBirth; public void print() {System.out.println(id+" "+name+" "+yearOfBirth);} } public class Test {public static void main(String []args) {Student st=new Student(); st.print();} } ``` **الخرج:** ``` 0 null 0 BUILD SUCCESSFUL (total time: 0 seconds) ``` ## البواني في جافا (Java Constructors) - الباني هو نوع خاص من الطرق هو (تابع) يُستخدم لتهيئة الكائن وإعطاء قيم أولية للكائن عند إنشائه. - له نفس اسم الصف. - لا يحتوي على قيمة معادة ولا حتى void. - تحتوي جميع الصفوف على باني افتراضي يقوم بتهيئة جميع المتغيرات الأعضاء إلى القيم الافتراضية. ولكن بمجرد تعريف باني ضمن الصف، لم يعد الباني الافتراضي موجوداً.