الملاحظات
التي تتم كتابتها في كود الجافا
كيفية تعريف الـ class
طريقة الـ main او الـ main method
استعمال الـ classes
أولا:
نتعرف على كيفية كتابة الملاحظات أو ال comments في كود الجافا, تفيد هذه الملاحظات
المبرمجين الآخرين أو المطورين على فهم البرنامج بصورة أفضل.
1. انظر المثال الذي يلي, ال Comments مكتوبة بخط عريض bold.
/**
* The HelloWorldApp class implements an application that
* simply displays "Hello World!" to the standard output.
*/class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); //Display the string.
}
}
2. نرى في المثال السابق نوعان من الملاحظات و هما:
/** النص */
و تستخدم هذه الطريقة لكتابة معلومات التوثيق أو ال documentation و لا يقوم
المترجم بترجمة الأوامر بين هاتين العلامتين.
// النص
و تستخدم هذه الطريقة لكتابة سطر واحد من الملاحظات و لا يقوم المترجم بترجمة
الأوامر في هذا السطر إلى أن يصل إلى اخره.
و هناك نوع آخر غير موجود في المثال السابق و هو كالتالي
/* النص */
و هو لكتابة الملاحظات أيضا, و لا يقوم المترجم بترجمة الأوامر بين هاتين العلامتين
أيضا.
ثانيا:
نتعرف هنا إلى الطريقة التي نعرف بها ال class.
إن الطريقة التي يتم بها تعريف ال class بسيطة جدا كما في المثال التالي, ال class
مكتوب بخط عريض bold.
class
HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
و في مثال أبسط,
class name {
. . .
}
بحيث نكتب اسم ال Class الذي نريد مكان name و نكتب بقية البرنامج بدلا عن النقاط
الثلاث.
ثالثا:
نتعرف هنا على الmain method , و كيف نقوم بكتابتها, و ما هو معناها.
1. انظر المثال الذي يلي, ال main method مكتوبة بخط عريض bold.
class
HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
2. يجب أن نعرف أن أي تطبيق بالجافا
يجب أن يتضمن على main method و تتم كتابته بهذه الطريقة.
public static void main(String[] args)
3. نأتي هنا إلى شرح كل مقطع من ال main method, و هو كالتالي:
· public و معناها أن ال main method يمكن أن تستدعى من أي
object.
· static و معناها أن ال main method هي class method.
· void و معناها أن ال main method لا ترجع لنا اي قيمة.
4. ال main method في الجافا هي مثل ال main التي في ال C و ال C++. عندما يقوم
المترجم التابع للجافا, ال Interpreter بتشغيل التطبيق, يبدأ باستدعاء ال main
method التابع لل class. يقوم بعد ذلك ال main باستدعاء بقية ال methods الضرورية
لتشغيل التطبيق. أي أن ال main هو المدخل الذي يتم من خلاله تشغيل التطبيق و يدونه
لا يتم تشغيله, أي انك إذا حاولت أن تشغل أي تطبيق لا يحتوي على main method فان
المترجم لا يشغل التطبيق, و تطلع مثل هذه الرسالة.
In class NoMain: void main(String argv[]) is not defined
5. كما سنرى في المثال اللاحق أن ال main method يحتوي على argument يقبل مصفوفة من
عناصر نصية string.
public static void main(String[] args)
6. هذه المصفوفة عملها أن تسمح لمعلومات التشغيل التابعة للنظام runtime بالدخول
الى التطبيق.
رابعا:
نتعرف هنا على طريقة استعمال برنامجنا HelloWorldApp لل classes.
1. ان البرنامج الذي تمت كتابته يعتبر من ابسط الأمثلة في لغة الجافا بحيث احتوى
على class واحد فقط و هو HelloWorldApp, و لكن مع تقدمنا في البرمجة يزداد تعقيد
البرنامج فنحتاج إلى العديد من ال classes.
2. و مع أننا قد عرفنا class واحد لبرنامجنا ولكن كان هناك class آخر ألا و هو ال
system class و هو جزء من ال API (application programming interface), و الذي يأتي
ضمن بيئة الجافا. و سوف نتكلم بالتفصيل عن ال system class بالتفصيل في دروس قادمة.
3. في المثال اللاحق نرى استعمال متغير الكلاس class variable.
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
4. لننظر إلى القسم الأول من الجملة.
System.out.println("Hello World!");
5. نرى هنا أن System.out هو الاسم الكامل للمتغير out في ال system class.
ملاحظة: أرجو منكم كتابة الكود بحروفه كما هي دون تعديل لأن لغة الجافا حساسة لحالة
الأحرف, مثلا: HelloWorldApp ليست مثل helloworldapp.
ما هو الـ
applet
كيفية استيراد import للـ classes و الحزم packages
كيفية تعريف الـ subclass للـ applet
كيفية تنفيذ الـ applet methods
كيفية تشغيل الـ applet
أولا:
نتعرف هنا على ال applet, لقد رأينا في دروس سابقة ال applet و لكننا نتسائل ما هو.
ال applet هو برنامج ينفذ مجموعة من الاوامر التي تسمح له بأن يعمل على متصفح يدعم
لغة الجافا.
سنرى في المثال اللاحق برنامج applet
import java.applet.Applet;
import java.awt.Graphics;
public class HelloWorld extends Applet {
public void paint(Graphics g) {
g.drawString("Hello world!", 50, 25);
}
}
ثانيا:
نتعرف هنا على كيفية عمل استيراد import لل classes و الحزم packages.
ان اول سطرين في المثال اللاحق هما لاستيراد اثنان من ال classes المستعملات في ال
applet, و هما Applet و Graphics.
import java.applet.Applet;
import java.awt.Graphics;
public class HelloWorld extends Applet {
public void paint(Graphics g) {
g.drawString("Hello world!", 50, 25);
}
}
اذا ابعدنا هذان السطران فأننا نستطيع تشغيل البرنامج و لكن بشرط ان نغير الكود الى
هكذا.
public class HelloWorld extends java.applet.Applet {
public void paint(java.awt.Graphics g) {
g.drawString("Hello world!", 50, 25);
}
}
كما رأينا, ان عملية استيراد ال Applet و ال Graphics تمكن
البرنامج من الرجوع اليهم بدون ان يكون هناك تعريف لهم في بداية البرنامج. ال
java.applet. و ال java.awt. تخبر المترجم compiler في اي حزمة package يجب ان يبحث
عن Applet و Graphics.
ان كل من java.applet و java.awt هما packages, و هما جزء من ال API و الذي يوجد في
كل بيئة جافا.
ان ال package (java.applet) يحتوي على ال classes الضرورية لل applet.
ان ال package (java.awt) يحتوي على ال classes المستعملة في AWT و التي تستعمل
لعمل الواجهة الرسومية لبرامج الجافا GUI.
نتسائل هنا عن الدرس السابق عندما تكلمنا عن ال System class و انه لا يحتاج الى
import, السبب هنا ان ال System class هو جزء من حزمة ال java.lang, و كل شيء ضمن
هذه الحزمة يستورد اوتوماتيكيا الى كل برنامج جافا.
لقد تكلمنا عن استيراد classes محددة من داخل ال packages, و لكن الان نتكلم عن
استيراد ال package كاملة و ليس class بعينه.
import java.applet.*;
import java.awt.*;
public class HelloWorld extends Applet {
public void paint(Graphics g) {
g.drawString("Hello world!", 50, 25);
}
}
في لغة الجافا كل class موجود ضمن package, و سوف نتكلم عن كيفية انشاء ال packages
في دروس اخرى قادمة.
ثالثا:
نتعرف هنا على كيفية تعريف ال subclass لل applet.
ان اول سطر عريض bold في المثل اللاحق, يبدأ بتعريف HelloWorld class.
import java.applet.Applet;
import java.awt.Graphics;
public class HelloWorld extends Applet {
public void paint(Graphics g) {
g.drawString("Hello world!", 50, 25);
}
}
ان معنى كلمة extends في هذا البرنامج ان HelloWorld هو subclass من ال class الذي
يليه Applet.
رابعا:
نتعرف هنا على كيفية تنفيذ ال applet methods.
ان السطور العريضة في المثال اللاحق تعرف ال paint method.
import java.applet.Applet;
import java.awt.Graphics;
public class HelloWorld extends Applet {
public void paint(Graphics g) {
g.drawString("Hello world!", 50, 25);
}
}
يجب على كل applet ان يعرف على الاقل واحد او اكثر من هذه ال methods
(init,start,paint).
لنعود الان الى شرح الكود السابق, لقد ادخلنا ال Graphics الى ال paint method و
معنى هذا اننا سنحصل على صورة او نص على شاشة المتصفح.
ان اول argument من Graphics هو drawstring method و الذي سيقوم برسم النص على
الشاشة, ال argument الثاني و الثالث هما (x,y) وهو موقع النص, اي الطرف الايسر
السفلي من النص.
خامسا:
نتعرف هنا على كيفية تشغيل ال applet.
نرى في كود صفحة ال html رابط ال applet الذي نقوم بادراجه لكي نستطيع تشغيله على
المتصفح.
<HTML>
<HEAD>
<TITLE> A Simple Program
</TITLE>
</HEAD>
<BODY>
Here is the output of my program:
<APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25>
</APPLET>
</BODY>
</HTML>
ان الكود الذي قمنا بادراجه عمله ان يوجه المتصفح الى البحث عن الملف
HelloWorld.class في نفس ال folder الذي يحتوي على صفحة ال html و يقوم بتشغيله,
فيحتفظ المتصفح بنسخة عن ال class في ذاكرته للاستخدام اللاحق.
ملاحظة: ارجو منكم كتابة الكود بحروفه كما هي دون تعديل لأن لغة الجافا حساسة لحالة
الاحرف, مثلا: HelloWorldApp ليست مثل helloworldapp.