بسم الله الرحمن الرحيم
(الدرس الأول)
في البدايه ضع هذه النقاط في بالك:
لابد أن نعرف أن الجافا فيها شيئين أساسيين هما الكلاس و المثيد.
طبعاً كل كلاس ممكن يحتوي على الكثير من المثيد.
لو تلاحظون إنه ممكن كل كلاس يحتوي على أكثر من مثيد وممكن حنا نربط كذا كلاس مع بعض... سوف أتطرق إلى هذا الموضوع بالتفصيل في الدروس التاليه إنشاء الله.
(الكلاس)
في البدايه لا بد أن تنشيء شي إسمه كلاس(class) وتسمي هذا الكلاس بأى أسم تريده
وتضع قوسين من هذا النوع }.
مثال:
public class Alraddadi{
~
}
إسم الكلاس Alraddadi
طبعاً تلاحظون إنى كتبت public وهذه لها معنى.....
إذا حطيت قبل كلمة class كلمة public فإنه لابد أن يكون إسم البرنامج الى إمتداده .java نفس الإسم حق الكلاس الى فيه المين مثيد(أرجو قراءت المثيد في الأسفل لكى تفهم المقصود).
ممكن المبتدى في لغة الجافا لم يفهم المعنى الأن ولكن إنشاء الله في الدروس التاليه راح أتطرق إلى public كثير وراح أجيب أمثله لها وأشرحها شرح مفصل وأذكر المعنى بالتحديد إنشاء الله بس إنتم تابعوا الموضوع وعطوه إهتمام وبشوف ردودكم الكثيره وتعليقاتكم.
ملاحظه:
لا بد أن يكون إسم الكلاس بادي بحرف ليس رقماً
لو حطيت في البدايه رقم راح يطلع لك خطأ.
يفضل جعل أول حرف من إسم الكلاس كبتل.(لإنه متعارف عن المبرمجون بأن أول حرف من الكلاس يكون كبتل) ولكن لو جعلته سمول عادي ولكنك أنت تكتب برنامج بصفتك مبرمج لذا من الأفضل أن تعرف أساليب وطرق المبرمجين ومحاولة إتباعها.
(المثيد)
طبعاً المثيد تكون مندرجه تحت الكلاس.
يوجد أنواع كثيره من المثيد وسوف أتطرق إلى كل نوع بالتفصيل في الدروس الاحقه إنشاء الله. (أقصد بالأنواع أى الأفكار والطرق حقت كتابتها والإستفاده منها)
من أنواع المثيد هو المين مثيد وهذا النوع هو النوع الذي يبدأ البرنامج به وينتهي به.
عندما يشتغل البرنامج فإنه يبحث عن المثيد الى إسمها main وهى المين مثيد
ويشغلها ومنها تشتغل المثيد الأخرى إن وجدت مثيد أخرى...
مثال:
public static void main(String [] args){
~
}
طبعاً لو تلاحظون كتبت قبل إسم المين(main) هذه public static void
لابد من كتابة (String [] args)
وهذه لابد أن تكتب في المين مثيد.
سوف أتطرق في الدروس التاليه ما هو عمل static و void و....إنشاء الله بس أصبرو علي.
طيب يسير أول شي نذكر الكلاس ونذكر داخله المثيد يعنى يسير البرنامج كتالي:
public class Alraddadi{
public static void main(String [] args){
~
}
}
في هذه العلامه ~ سوف نكتب الأكواد المراد كتابتها. يعنى هنا نكتب البرنامج الى في السابق هذا بس تحضير لكتابة البرنامج
~ طبعاً هذه العلامه معناه إنه في أكواد هنا لاكن ما تهمنى الآن.....
------------------------------------------------------------------------
في كل كود من الأكواد التاليه لابد أن نكتب بعد الكود
;
------------------------------------------------------------------------
تعريف المتغيرات
يوجد أنواع من المتغيرات في الجافا أذكر أشهرها:
boolean
تحمل خيارين صح أو خطأ
تستخدم بكثره في المقارنه سوف نتطرق إلى موضوع المقارنات وشروطها إنشاء الله في الدرس المقبله....
مثال
boolean b = true;
أو
boolean c = false;
معناها إنى عرفت متغير بإسم c من نوع boolean وأعطيته قيمه false
وهكذا....
الذاكره الى يستخدمها من الرام هي 1بايت
---------
char
تحمل قيمه واحده سواء كانت حرف أو عدد
لابد أن تكون القيمه بين قوسين ولكن القوس الى فيه إشاره واحده '
مثال
char s = 'a';
الذاكره الى يستخدمها من الرام هي 2بايت
----------
byte
يحتوي على عدد صحيح أى بدون فواصل(integer) بين -128 إلى 127
مثال
byte a = 24;
الذاكره الى يستخدمها من الرام هي 1بايت
----------
short
يحتوي على عدد صحيح أى بدون فواصل(integer) بين -32768 إلى 32767
مثال
short a = 2301;
الذاكره الى يستخدمها من الرام هي 2بايت
----------
int
يحتوي على عدد صحيح أى بدون فواصل(integer) بين -2147483648 إلى 2147483647
مثال
int a = 2301;
الذاكره الى يستخدمها من الرام هي 4بايت
---------
long
يحتوي على عدد صحيح أى بدون فواصل(integer) بين .....
مثال
long a = 21452544;
الذاكره الى يستخدمها من الرام هي 8بايت
------
float
يحتوي على عدد فيه فاصله (floating-point) بين .....
مثال
float a = 24838.42;
الذاكره الى يستخدمها من الرام هي 4بايت
-----
double
يحتوي على عدد فيه فاصله (floating-point) بين .....
مثال
double a = 24835788.92;
الذاكره الى يستخدمها من الرام هي 8بايت
-----------
String
لتعريف النصوص
لاحظ حرف S كبتل لابد أن يكون كبتل علشان هذا كلاس في الأصل......
لابد أن تكون النصوص بين علامتى تنصيص "
مثال
String s = "Alraddadi";
---------------
بعد تعريف المتغيرات تستطيع أن تضيف عليها وتطرح وتعمل العمليات الحسابيه
مثال
int x = 4;
int y = 2;
int w = x + y;
توجد أفكار كثيره في المتغيرات سوف أطرق إليها لاحقاً إنشاء الله
من الأفكار إنك مايسير تعرف متغير من نوع double
وتساويه بنوع متغير من int علشان double أكبر من int
هذا خطأ
double x = 12.0;
int y = x;
هذا صح
int x = 12;
double y = x;
------------------------------------------------------------------------
في كل كود من الأكواد التاليه لابد أن نكتب بعد الكود
;
------------------------------------------------------------------------
كود الطباعه
System.out.print("String");
يطبع الكلمه String
System.out.println("String");
أولاً يطبع الكلمه String ثم ينتقل إلى السطر الثاني
System.out.print("String\n");
أولاً يطبع الكلمه String ثم ينتقل إلى السطر الثاني
لاحظ إذا كنت تريد أن تنتقل إلى سطر جديد لابد أن تكتب n\
إذا كنت تريد أن تقفز كذا مسافه من دون الإنتقال إلى السطر الجديد تستخدم t\
لاحظ لابد أن يكون الكلام المراد كتابته بين قوسين صغيرين ""
إذا كنت تبيه يطبع قيمة متغير ماء فإنك لا تستخدم ""
مثال
int x = 123;
System.out.println(x);
-----------------------------------------------------------------------
معليش أضطريت إنى أتوقف هنا راح أكمل إنشاء الله قريباً
أتركم مع هذه الأسأله
السؤال الأول
هل
System.out.println("String")
يساوي
System.out.print("String\n")
؟
السؤال الثاني
مارأيك في هذه العباره
طيب نوع المتغير double يحمل أكثر من short طيب ليه يحتاج أحياناً نعرف short مايحتاج نعرفها طوالى نذكر إنه double ونكون متأكدين إنه صح ونرتاح
والكلام ماشي مع المتغيرات الأخرى نعرف كل المتغيرات إنها double إذا كان عدد ونريح نفسنا
هل هذا الكلام صح؟؟؟؟؟؟؟؟؟؟؟
السؤال الثالث
أكتب برنامج يطبع كلمة Alraddadi (بالتحديد هذه الكلمه) وبعدها كلمة بسطرين فارغين هذه الكلمه تكون إسمك ولكن أريدك أولاً أن تعرف إسمك في متغير ثم تطبع المتغير بعد سطرين فارغين من كلمة Alraddadi؟؟
أذكر الأكواد حقتك في ردك؟؟
************************************************** **********************************
(الدرس الثاني)
سوف أقوم بشرح أهم ثلاثه كلاسات في الجافا من نظري الى وهي
Math , Scanner , String
وأحاول أشرح أهم الثيد الموجوده في كل كلاس فلنبداء على بركة الله عز وجل
التعامل مع النصوص
String
في البدايه لابد أن نعرف أن النصوص تختلف عن الأعداد في كثير من الأشياء.من أهمها مقارنه بين نصيين(سوف أتطرق إلى هذا الموضوع في درس المقارنه)
لابد أن نعرف إنه String أصلح كلاس يحتوي على العديد من المثيد سوف أذكر أهمها:
length()
عندما تستدعي المثيد هذه فإن عملها هو أن يعطيك طول النص حرف حرف (إنتبه حتى المسافه يعتبرها حرف)
لابد أن تعرف الن طول النص يكون عدد صحيح )int(
إذاً هذه المثيد ترجع int
يبدأ يعد من واحد إلى النهايه
طريقة إستخدامها
في البدايه لابد أن تذكر النص بين قوصين أو تذكر متغير لابد أن يكون هذا المتغير من نوع String. لإن المثيد هذه تحت كلاس String
ثم دوت
ثم length()
القوسان () يكونان فارغان
مثال:
"Alraddadi".length();
أو
String s = "Alraddadi";
s.length();
ولكن لو تلاحظ إحنا طلبنا يستدعي المثيد length() وهذه ترجع لنى عدد صحيح بس إحنا ما حفضنى العدد في في متغير من نوع int علشان نستخدمه بعدين
لابد أن نحفظه في متغير نوعه زي نوع الى يرجع المثيد
فيسير كذا
int x = "Alraddadi".length();
تصبح هنا قيمة المتغير x هي طول عدد الأحرف في كلمة Alraddadi
يعنى x = 9
أو
String s = "Alraddadi";
int x = s.length();
تصبح هنا قيمة المتغير x هي طول عدد الأحرف في المتغير s الذي يحتوي على كلمة Alraddadi
يعنى x = 9
---------------------------
equals()
للمساواه بين نصين
يرجع لك true إذا كانوا متساوين ويرجع false إذا كانوا ليس متساوين
إذاً هذه المثيد ترجع Boolean
طريقة إستخدامها
في البدايه لابد أن تذكر النص بين قوصين أو تذكر متغير لابد أن يكون هذا المتغير من نوع String. لإن المثيد هذه تحت كلاس String
ثم دوت
ثم equals()
ويكون بين القوسين () إما نص بين علامتين تنصيص أو فقط متغير من نوع String
مثال:
Boolean w = "Alraddadi".equals("Alraddadi");
طبعاً راح يسير قيمة المتغير w بـ true لإن النصين متساويين
أو
Boolean w = "Alraddadi".equals("alraddadi");
طبعاً راح يسير قيمة المتغير w بـ false لإن النصين غير متساويين
لاحظ أنه فيه فرق كبير بين السمول و الكبتل في لغة الجافا.
أو
String s1 = "Alraddadi";
String s2 = "alraddadi";
Boolean w = s1.equals(s2);
طبعاً راح يسير قيمة المتغير w بـ false لإن النصين غير متساويين
......
-----------------------
equalsIgnoreCase()
نفس عمل equals() بالتمام إلا أنها لا تفرق بين السمول و الكبتل
-----------------------
toLowerCase()
لجعل نص محدد كله سمول
هذه المثيد ترجع String
طريقة إستخدامها
في البدايه لابد أن تذكر النص بين قوصين أو تذكر متغير لابد أن يكون هذا المتغير من نوع String. لإن المثيد هذه تحت كلاس String
ثم دوت
ثم toLowerCase()
ويكون القوسين () فارغين
مثال
String s = "RADDADI".toLowerCase();
راح يسير قيمة المتغير s "raddadi" لاحظوا حولها لسمول
-------------------------
toUpperCase()
نفس عمل toLowerCase() بس يرجعها كبتل
-------------------------
trim()
لحذف الفراغات الزايده
هذه المثيد ترجع String
طريقة إستخدامها
في البدايه لابد أن تذكر النص بين قوصين أو تذكر متغير لابد أن يكون هذا المتغير من نوع String. لإن المثيد هذه تحت كلاس String
ثم دوت
ثم trim()
ويكون القوسين () فارغين
مثال
String s = " Hmm ".trim();
راح يسير قيمة المتغير s "Hmm" لاحظوا حذف الفراغات الزايده
-----------------------
charAt()
لأخذ حرف واحد من نص
هذه المثيد ترجع char لإنه بس نبغى حرف واحد
يبدأ يعد من صفر إلى النهايه
طريقة إستخدامها
في البدايه لابد أن تذكر النص بين قوصين أو تذكر متغير لابد أن يكون هذا المتغير من نوع String. لإن المثيد هذه تحت كلاس String
ثم دوت
ثم charAt()
ويكون القوسين () بداخلهم مكان الحرف المراد أخذه
مثال
char c = "Alraddadi".charAt(1);
راح يعد لما يصل إلى القيمه الموجوده بين القوسين طبعاً يبدأمن صفر وينتهي عند طول النص - 1
يسير قيمة المتغير c 'l' لاحظوا علامت تنصيص زي كذا ' لإنه من نوع char
الملاحظ الثانيه والمهمه أنو أول مايعد يبدأ من صفر فلو حطينا جو القوسين (0) الناتج يطلع 'A'
---------------------------
substring(~1,~2)
هذه صعبه شوي علشان كذا دقق فيها مره
لإخذ نص من نص آخر يبدأ من ~1 إلى ~2 ولكن لا يأخذ ~2 يأخذ الى قبلها
~1 و ~2 لابد يكون عدد إنتجر لإنه طول النص يكون عدد صحيح من المستحيل إنه يكون double
طبعاً أو مايبدأ بترتيب الأحرف يعد من الصفر زي charAt()
هذه المثيد ترجع String
طريقة إستخدامها
في البدايه لابد أن تذكر النص بين قوصين أو تذكر متغير لابد أن يكون هذا المتغير من نوع String. لإن المثيد هذه تحت كلاس String
ثم دوت
ثم substring(~1,~2)
مثال
يعني لو نبي ناخذ الحرفين "dd" من "alraddadi" نبدأ نعد من صفر
صفر = a
1 = l
2 = r
3 = a
4 = d
5 = d
6 = a
7 = d
8 = i
لاحظ أن طول النص 9 بس الطول نبدأ من 1
يعني يسير الكود
String d = "alraddadi";
String s = d.substring(4,6);
أو
String s = "alraddadi".substring(4,6);
يسير قيمة المتغير s "dd"
لاحظ كتبنى (4,6) مو (4,5)
علشان قلنا ياخذ أول ترتيب الى هو ترتيب 4 إذا كان بادي من الصفر
وقلنا 6 علشان ينتهي عند ترتيب الحرف الى قبله
إذا كنت تبى تشوف كم حرف راح يطلع نقص النهايه من البدايه
6-4=2 حرفين
5-4=1 حرف
البدايه معانا بس النهايه لا الى قبل النهايه معانا
ملاحظه إذا كتبنا كذا
substring(~1)
خذ النص من ~1 إلى نهاية النص
-----------------------------
indexOf(~1,~2)
هذه صعبه شوي علشان كذا دقق فيها مره
ترجع ترتيب حرف معير أو كلمه أنت تضعه من نص معين
الترتيب يبدأ من صفر
هذه المثيد ترجع int لإنه ترتيب النص يكون عدد صحيح من المستحيل إنه يكون double
~1 نضع حرف أو نص الى نبغاه يرجع ترتيبه كم في نص معين من هذه المثيد
~2 نضع بداية البحث عن هذا النص أو الحرف الى نبغاه يبحث عنه من نص معين
إذاً ~1 ندخل فيه نص
و ~2 ندخل فيه عدد صحيح
تقدر تخليه زي كذا indexOf(~1)
يعني يبحث لك عن ~1 من أول النص
طريقة إستخدامها
في البدايه لابد أن تذكر النص بين قوصين أو تذكر متغير لابد أن يكون هذا المتغير من نوع String. لإن المثيد هذه تحت كلاس String
ثم دوت
ثم indexOf(~1,~2)
مثال:
يعني لو نبي يرجع لنا ترتيب أول حرف من "d" من كلمة "alraddadi" نبدأ نعد من صفر
صفر = a
1 = l
2 = r
3 = a
4 = d
5 = d
6 = a
7 = d
8 = i
لاحظ أن طول النص 9 بس الطول نبدأ من 1
لاحظ أول ترتيب ل حرف d هو 4
يعني يسير الكود
String d = "alraddadi";
int x = d.indexOf("d");
أو
int x = "alraddadi".indexOf("d");
راح يسير قيمة المتغير s 4
لو نبيه يجيب ترتيب حرف d الى في ترتيب 7
يسير الكود كتالى
int x = "alraddadi".indexOf("d",6);
راح يروح إلى الترتيب 6 ويلقاه حرف a يمشي للى بعده ويلقاه حرف d وهو المطلوب فيسير قيمة المتفير 7
لاحظ حتى لو حطيت حرف لابد أنك تحط نوع القوس زي كذ " لإن المدخل من نوع String ليس من نوع char
-------------------
lastIndexOf(~1)
زي indexOf(~1,~2) بس إنه يرجع ترتيب النص أو الحرف الآخير من نص معين
مثال
int x = "alraddadi".lastIndexOf("d");
يسير قيمة المتفير 7
لإنه آخر حرف d ترتيبه 7
----------------------
ملاحظه تقدر تخلط المثيد مع بعض يسير تقدر تقول
String s = ALRADDADI".substring(0).toLowerCase();
--------------------
برنامج للمراجعه مهم لكى تشوف نفسك فاهم ولا لا
أنصحك بأن تنسخ الكود وتحاول تلعب معاه وتتعلم منه
البرنامج يحول ترتيب الثلاث نصوص من النهايه إلى البدايه ولكن النص لابد أن يكون ثلاثة كلمات
class change{
public static void main(String [] args){
String x = "alraddadi and qatorah";
System.out.print(x.substring(x.lastIndexOf(" ") + 1) + x.substring(x.indexOf(" "),x.lastIndexOf(" ") + 1) + x.substring(0,x.indexOf(" "))) ;
}
}
لاحض +1 علشان نأخذ المسافه
إنشاء الله بعدين لما ندرس اللوب راح نعرف نقلب النص كامل مو شرط كم كلمه...بس أنتم تابعونا....
-----------------------
السؤال الأول
هل
Boolean w = "Alraddadi".equals("alraddadi");
تساوي
String s1 = "Alraddadi";
String s2 = "alraddadi";
Boolean w = s1.equals(s2);
في الأكواد؟؟؟؟؟
السؤال الثاني
عندك هذين النصين
alraddadi
و
Alraddadi
قارن بينهم وجعل المقارنه تكون صحيحه؟ بكتابة كود... وخليه يطبع الناتج
السؤال الثالث
عرف متغير وأعطيه كلمة "aLRADDADI"
زي كذا
String s = "aLRADDADI";
أريده أن يجعل الحرف الأول كبتل و الحروف الأخرى سمول .....عن طريق الأكواد
السؤال الرابع
صعب شوي فيله فكره بس
أريدك أن تكتب برنامج يحول هذا النص
"best the is alraddadi"
إلى
"alraddadi is the best"
عن طريق الأكواد
إستخدم indexOf(~1,~2)
؟؟؟؟؟؟؟؟
------------------------------------
مضطر أوقف هنا لو كملت ما راح تفهموني