ويكي كتب arwikibooks https://ar.wikibooks.org/wiki/%D8%A7%D9%84%D8%B5%D9%81%D8%AD%D8%A9_%D8%A7%D9%84%D8%B1%D8%A6%D9%8A%D8%B3%D9%8A%D8%A9 MediaWiki 1.47.0-wmf.23 first-letter ميديا خاص نقاش مستخدم نقاش المستخدم ويكي كتب نقاش ويكي كتب ملف نقاش الملف ميدياويكي نقاش ميدياويكي قالب نقاش القالب مساعدة نقاش المساعدة تصنيف نقاش التصنيف نص زمني نقاش النص الزمني وحدة نقاش الوحدة فعالية نقاش فعالية البرمجة بلغة جافا 0 1538 270726 226479 2026-10-11T20:35:05Z SanBonne 34889 /* الموضوعات و الدروس */ 270726 wikitext text/x-wiki __NOTOC__ <small>[[لغات البرمجة الحاسوبية|<< لغات البرمجة الحاسوبية]]</small> <div style="display:block; padding:0.3em; background-color:#66FCCF; border:1px solid #aaa; -moz-border-radius-topright:0.4em; -moz-border-radius-topleft:0.4em; text-align:right; font-size:75%;"><br /> <div style="font-size:250%; text-align:center;">'''البرمجة مع جافا Java'''</div><br /></div> <br /> {{ويكيبيديا|جافا}} == ما هي جافا؟ == جافا عبارة عن لغة برمجة كينونية مشتقة من لغة سي بلس بلس، و لكنها تمتاز عن اللغات الأخرى بأنها تمكنك من كتابة برنامج مرة واحدة فقط و من ثم تستطيع أن تشغل البرنامج على أي جهاز كمبيوتر آخر، حتى إذا كان من نوع آخر أو يعمل على نظام تشغيل مختلف، بدون الحاجة لإعادة تركيب البرنامج. الهدف الأساسي لنشأة جافا هو إيجاد لغة مشابهة للغة سي+ + من حيث التركيب النحوي ، كائنية التوجه، و مصممة للعمل علي اّلة إفتراضية بحيث لا تحتاج إلي الترجمة من جديد عند استخدام برامجها على منصة تشغيل أو نظام تشغيل جديد، حيث قامت شركة صن بإنشاء الاّت افتراضية لتشغيل جافا على معظم منصات و نظم التشغيل الموجودة حاليا، فأصبح من الممكن ترجمة البرنامج مرة واحدة ثم تشغيله على نظم مختلفة أو ما أسمته صن ب إكتب مرة واحدة ، شغل في أي مكان (الإنجليزية: Write Once, run anywhere). هنالك ثلاثة مستويات من جافا: 1) (Java 2 Standard Edition (J2SE: النسخة الرئيسة من جافا، و تستخدم عادة لكتابة برامج للكمبيوتر الشخصي. 2) (Java 2 Enterprise Edition (J2EE: النسخة الأكبر من جافا. تشمل النسخة الرئيسة. تستخدم عادة لكتابة برامج كبيرة للشركات أو لكتابة مواقع الإنترنت. 3) (Java 2 Micro Edition (J2ME: النسخة الأصغر من جافا، و تستخدم لكتابة برامج للأجهزة الصغيرة مثل الهواتف النقالة و المساعدات الشخصية الرقمية (PDA). جميع هذه المستويات تتعامل مع نفس أسلوب البرمجة، و لكنها تختلف بشكل رئيسي من ناحية المكتبات الجاهزة (API) و بعض الأشياء الأخرى غير الأساسية. == نبذة عن تاريخ جافا: == في عام 1991 قامت شركة صن مايكروسيستمز (Sun Microsystem) بتمويل بحث لإنشاء لغة برمجة لتطوير الأدوات الإلكترونية الذكية، و كنتيجة لهذا البحث ظهرت لغة برمجة مبنية على لغة سي بلس بلس (++C) أطلق عليها مخترعها جيمس غوسلنغ (James Gosling) اسم أوك (Oak). و لكن بعد ذلك تم اكتشاف أن هنالك لغة برمجة تدعى أوك. لذا، و أثناء زيارة بعض موظفي شركة صن مقهى محلي، تم إقتراح اسم جافا (Java) و تم اختياره. في هذه الأثناء كان المشروع الذي بنيت هذه اللغة من أجله يواجه بعض الصعوبات، حيث أن سوق الإلكترونيات الذكية لم ينمو كما كان هو متوقع. و لكن شاء الله أن الشبكة العنكبوتية (World Wide Web) بدأت بالإنتشار في عام 1993 و أدركت شركة صن فائدة جافا لإضافة المحتوى الحيوي (Dynamic Content) و الصور المتحركة (Animation) إلى صفحات الشبكة. في شهر مايو من عام 1995 قامت شركة صن بالإعلان عن جافا رسميا، و كان إقبال القطاع التكنولوجي و قطاع الأعمال عليها كبير بسبب الاهتمام الكبير بالشبكة العنكبوتية. الآن، يمكنك أن تجد جافا في برامج للشركات، أو تجدها تحسن الصفحات على الإنترنت، أو في برامج للأجهزة الإستهلاكية مثل الهواتف النقالة و غيرها الكثير و تعتبر ال java من أقوى لغات البرمجه . == الموضوعات و الدروس == {{برمجة:جافا}} [[برمجة جافا/التركيب النحوي|برمجة جافا:التركيب النحوي]] [[جافا/أساسيات 1|برمجة:جافا:أساسيات 1]]: ما هي أنواع البرامج في جافا؟ ما الفرق بين Application و Applet؟ ما معنى Class؟ [[جافا/أساسيات 2|برمجة:جافا:أساسيات 2]]: كيف نعرّف المتغيرات؟ العمليات الحسابية و العمليات المنطقية. [[جافا/أساسيات 3|برمجة:جافا:أساسيات 3]]: جمل الاختيار و جمل الدوران. [[جافا/أساسيات 4|برمجة:جافا:أساسيات 4]]: Methods و Arrays. [[برمجة:جافا:تدريب 1]]: كتابة بعض البرامج مع شرح وافي. [[برمجة:جافا:البرمجة الكينونية 1]]: مفهومها و أساسياتها. [[جافا/البرمجة الكينونية 2|برمجة:جافا:البرمجة الكينونية 2]]: التوارث (Inheritance). [[جافا/البرمجة الكينونية 3|برمجة:جافا:البرمجة الكينونية 3]]: التحول (Polymorphism). [[برمجة:جافا:تدريب 2]]: كتابة بعض البرامج لشرح البرمجة الكينونية. [[جافا/الأخطاء (Exceptions)|برمجة:جافا:الأخطاء (Exceptions)]]: ما معنى Exception؟ ما تأثيره؟ كيف نتفاداه و كيف نتعامل معه؟ {{تصنيف كومنز|Java (programming language)}} [[تصنيف:معلوماتية]] [[تصنيف:لغات البرمجة]] [[تصنيف:جافا (كتاب)]] [[تصنيف:قائمة الكتب]] 2p31k6qxe95l2g7mklwbkckldqybd10 270735 270726 2026-10-11T20:41:34Z SanBonne 34889 نقلت SanBonne صفحة [[برمجة جافا]] إلى [[البرمجة بلغة جافا]]: عنوان مكتوب بشكل خاطئ 270726 wikitext text/x-wiki __NOTOC__ <small>[[لغات البرمجة الحاسوبية|<< لغات البرمجة الحاسوبية]]</small> <div style="display:block; padding:0.3em; background-color:#66FCCF; border:1px solid #aaa; -moz-border-radius-topright:0.4em; -moz-border-radius-topleft:0.4em; text-align:right; font-size:75%;"><br /> <div style="font-size:250%; text-align:center;">'''البرمجة مع جافا Java'''</div><br /></div> <br /> {{ويكيبيديا|جافا}} == ما هي جافا؟ == جافا عبارة عن لغة برمجة كينونية مشتقة من لغة سي بلس بلس، و لكنها تمتاز عن اللغات الأخرى بأنها تمكنك من كتابة برنامج مرة واحدة فقط و من ثم تستطيع أن تشغل البرنامج على أي جهاز كمبيوتر آخر، حتى إذا كان من نوع آخر أو يعمل على نظام تشغيل مختلف، بدون الحاجة لإعادة تركيب البرنامج. الهدف الأساسي لنشأة جافا هو إيجاد لغة مشابهة للغة سي+ + من حيث التركيب النحوي ، كائنية التوجه، و مصممة للعمل علي اّلة إفتراضية بحيث لا تحتاج إلي الترجمة من جديد عند استخدام برامجها على منصة تشغيل أو نظام تشغيل جديد، حيث قامت شركة صن بإنشاء الاّت افتراضية لتشغيل جافا على معظم منصات و نظم التشغيل الموجودة حاليا، فأصبح من الممكن ترجمة البرنامج مرة واحدة ثم تشغيله على نظم مختلفة أو ما أسمته صن ب إكتب مرة واحدة ، شغل في أي مكان (الإنجليزية: Write Once, run anywhere). هنالك ثلاثة مستويات من جافا: 1) (Java 2 Standard Edition (J2SE: النسخة الرئيسة من جافا، و تستخدم عادة لكتابة برامج للكمبيوتر الشخصي. 2) (Java 2 Enterprise Edition (J2EE: النسخة الأكبر من جافا. تشمل النسخة الرئيسة. تستخدم عادة لكتابة برامج كبيرة للشركات أو لكتابة مواقع الإنترنت. 3) (Java 2 Micro Edition (J2ME: النسخة الأصغر من جافا، و تستخدم لكتابة برامج للأجهزة الصغيرة مثل الهواتف النقالة و المساعدات الشخصية الرقمية (PDA). جميع هذه المستويات تتعامل مع نفس أسلوب البرمجة، و لكنها تختلف بشكل رئيسي من ناحية المكتبات الجاهزة (API) و بعض الأشياء الأخرى غير الأساسية. == نبذة عن تاريخ جافا: == في عام 1991 قامت شركة صن مايكروسيستمز (Sun Microsystem) بتمويل بحث لإنشاء لغة برمجة لتطوير الأدوات الإلكترونية الذكية، و كنتيجة لهذا البحث ظهرت لغة برمجة مبنية على لغة سي بلس بلس (++C) أطلق عليها مخترعها جيمس غوسلنغ (James Gosling) اسم أوك (Oak). و لكن بعد ذلك تم اكتشاف أن هنالك لغة برمجة تدعى أوك. لذا، و أثناء زيارة بعض موظفي شركة صن مقهى محلي، تم إقتراح اسم جافا (Java) و تم اختياره. في هذه الأثناء كان المشروع الذي بنيت هذه اللغة من أجله يواجه بعض الصعوبات، حيث أن سوق الإلكترونيات الذكية لم ينمو كما كان هو متوقع. و لكن شاء الله أن الشبكة العنكبوتية (World Wide Web) بدأت بالإنتشار في عام 1993 و أدركت شركة صن فائدة جافا لإضافة المحتوى الحيوي (Dynamic Content) و الصور المتحركة (Animation) إلى صفحات الشبكة. في شهر مايو من عام 1995 قامت شركة صن بالإعلان عن جافا رسميا، و كان إقبال القطاع التكنولوجي و قطاع الأعمال عليها كبير بسبب الاهتمام الكبير بالشبكة العنكبوتية. الآن، يمكنك أن تجد جافا في برامج للشركات، أو تجدها تحسن الصفحات على الإنترنت، أو في برامج للأجهزة الإستهلاكية مثل الهواتف النقالة و غيرها الكثير و تعتبر ال java من أقوى لغات البرمجه . == الموضوعات و الدروس == {{برمجة:جافا}} [[برمجة جافا/التركيب النحوي|برمجة جافا:التركيب النحوي]] [[جافا/أساسيات 1|برمجة:جافا:أساسيات 1]]: ما هي أنواع البرامج في جافا؟ ما الفرق بين Application و Applet؟ ما معنى Class؟ [[جافا/أساسيات 2|برمجة:جافا:أساسيات 2]]: كيف نعرّف المتغيرات؟ العمليات الحسابية و العمليات المنطقية. [[جافا/أساسيات 3|برمجة:جافا:أساسيات 3]]: جمل الاختيار و جمل الدوران. [[جافا/أساسيات 4|برمجة:جافا:أساسيات 4]]: Methods و Arrays. [[برمجة:جافا:تدريب 1]]: كتابة بعض البرامج مع شرح وافي. [[برمجة:جافا:البرمجة الكينونية 1]]: مفهومها و أساسياتها. [[جافا/البرمجة الكينونية 2|برمجة:جافا:البرمجة الكينونية 2]]: التوارث (Inheritance). [[جافا/البرمجة الكينونية 3|برمجة:جافا:البرمجة الكينونية 3]]: التحول (Polymorphism). [[برمجة:جافا:تدريب 2]]: كتابة بعض البرامج لشرح البرمجة الكينونية. [[جافا/الأخطاء (Exceptions)|برمجة:جافا:الأخطاء (Exceptions)]]: ما معنى Exception؟ ما تأثيره؟ كيف نتفاداه و كيف نتعامل معه؟ {{تصنيف كومنز|Java (programming language)}} [[تصنيف:معلوماتية]] [[تصنيف:لغات البرمجة]] [[تصنيف:جافا (كتاب)]] [[تصنيف:قائمة الكتب]] 2p31k6qxe95l2g7mklwbkckldqybd10 قالب:Fmbox 10 11989 270756 37805 2026-10-12T09:57:29Z SanBonne 34889 270756 wikitext text/x-wiki {{#invoke:Message box|fmbox|plainlinks={{{plainlinks|yes}}}}} <noinclude> {{توثيق}} </noinclude> 9qjxhprv1ydevmbxmi5atec5xndtp7j قالب:صندوق رسالة مقالة 10 39408 270742 218648 2026-10-12T09:43:30Z SanBonne 34889 270742 wikitext text/x-wiki {#switch:{{{small|}}} | left = {{صندوق رسالة مقالة/أساس | small = left | type = {{{type|}}} | image = {{#if:{{{smallimage|}}} | {{{smallimage}}} | {{{image|}}} }} | imageright = {{#if:{{{smallimageright|}}} | {{{smallimageright}}} | {{{imageright|}}} }} | style = {{{style|}}} | textstyle = {{{textstyle|}}} | text = {{#if:{{{smalltext|}}} | {{{smalltext}}} | {{{text}}} }} }} | #default = {{صندوق رسالة مقالة/أساس | type = {{{type|}}} | image = {{{image|}}} | imageright = {{{imageright|}}} | style = {{{style|}}} | textstyle = {{{textstyle|}}} | text = {{{text}}} }} }}<!--{{صندوق رسالة مقالة}} end--><noinclude> {{توثيق}} [[تصنيف:استبعاد في المطبوعات]] </noinclude> i6vfz7zabqj5bjy3fpst41lizpypnr9 270743 270742 2026-10-12T09:43:41Z SanBonne 34889 استرجع تعديلات [[Special:Contributions/SanBonne|SanBonne]] ([[User talk:SanBonne|نقاش]]) حتى آخر مراجعة ل[[User:MenoBot|MenoBot]] 218648 wikitext text/x-wiki <!--{{صندوق رسالة مقالة}} begin-->{{#switch:{{{small|}}} | left = {{صندوق رسالة مقالة/أساس | small = left | type = {{{type|}}} | image = {{#if:{{{smallimage|}}} | {{{smallimage}}} | {{{image|}}} }} | imageright = {{#if:{{{smallimageright|}}} | {{{smallimageright}}} | {{{imageright|}}} }} | style = {{{style|}}} | textstyle = {{{textstyle|}}} | text = {{#if:{{{smalltext|}}} | {{{smalltext}}} | {{{text}}} }} }} | #default = {{صندوق رسالة مقالة/أساس | type = {{{type|}}} | image = {{{image|}}} | imageright = {{{imageright|}}} | style = {{{style|}}} | textstyle = {{{textstyle|}}} | text = {{{text}}} }} }}<!--{{صندوق رسالة مقالة}} end--><noinclude> {{توثيق}} [[تصنيف:استبعاد في المطبوعات]] </noinclude> g5ukst85q4osvehfs1j060p2odbswl1 270744 270743 2026-10-12T09:44:29Z SanBonne 34889 270744 wikitext text/x-wiki {{#switch:{{{small|}}} | left = {{صندوق رسالة مقالة/أساس | small = left | type = {{{type|}}} | image = {{#if:{{{smallimage|}}} | {{{smallimage}}} | {{{image|}}} }} | imageright = {{#if:{{{smallimageright|}}} | {{{smallimageright}}} | {{{imageright|}}} }} | style = {{{style|}}} | textstyle = {{{textstyle|}}} | text = {{#if:{{{smalltext|}}} | {{{smalltext}}} | {{{text}}} }} }} | #default = {{صندوق رسالة مقالة/أساس | type = {{{type|}}} | image = {{{image|}}} | imageright = {{{imageright|}}} | style = {{{style|}}} | textstyle = {{{textstyle|}}} | text = {{{text}}} }} }} <noinclude> {{توثيق}} [[تصنيف:استبعاد في المطبوعات]] </noinclude> hr5kb70m921oeinom3u9jkuyht7dfp5 270753 270744 2026-10-12T09:53:51Z SanBonne 34889 تحويل إلى [[قالب:صندوق رسالة كتاب]] 270753 wikitext text/x-wiki #تحويل [[قالب:صندوق رسالة كتاب]] t8pfa5otfi8suedpi44g1vgop0ixcb1 البرمجة بلغة جافا/التركيب النحوي 0 44887 270722 226488 2026-10-11T20:32:48Z SanBonne 34889 تطوير المقالة 270722 wikitext text/x-wiki تحدد '''قواعد التركيب النحوي (Java Syntax)''' في لغة البرمجة جافا الصيغة القياسية والشروط المعيارية لكتابة الأكواد واستخدام الكلمات المفتاحية، والتي ينبغي للـ '''مُترجم (Java Compiler)''' اتباعها لتحويل الشفرة المصدريّة إلى لغة البايت (Bytecode). ترتبط صياغة جافا بصلة وثيقة بلغتي [[C (لغة برمجة)|C]] و[[C++]]، غير أنها فرضت هيكلية صارمة تعتمد كلياً على '''[[برمجة كائنية التوجه|البرمجة كائنية التوجه (OOP)]]''' وتنفيذ نظام '''الأنماط القوية (Strong Typing)'''. 2sldasik7xnxrbqhc45xrsd584wwfww 270723 270722 2026-10-11T20:33:19Z SanBonne 34889 270723 wikitext text/x-wiki تحدد '''قواعد التركيب النحوي (Java Syntax)''' في لغة البرمجة جافا الصيغة القياسية والشروط المعيارية لكتابة الأكواد واستخدام الكلمات المفتاحية، والتي ينبغي للمُترجم (Java Compiler) اتباعها لتحويل الشفرة المصدريّة إلى لغة البايت (Bytecode). ترتبط صياغة جافا بصلة وثيقة بلغتي [[C (لغة برمجة)|C]] و[[C++]]، غير أنها فرضت هيكلية صارمة تعتمد كلياً على '''[[برمجة كائنية التوجه|البرمجة كائنية التوجه (OOP)]]''' وتنفيذ نظام '''الأنماط القوية (Strong Typing)'''. == الهيكل الأساسي للبرنامج == في لغة جافا، لا يمكن تنفيذ أي تعليمات برمجية خارج نطاق '''الفئات (Classes)'''؛ حيث يُكتب كل تطبيق داخل فئة واحدة على الأقل، ويشترط لتنفيذ البرنامج وجود دالة/أسلوب رئيسي يدعى <code>main</code>. <syntaxhighlight lang="java"> public class SyntaxExample { public static void main(String[] args) { System.out.println("مرحباً بك في ويكي الكتب"); } } </syntaxhighlight> * <code>public</code>: محدد وصول يُتيح استخدام الفئة أو الدالة من خارج الحزمة. * <code>class</code>: الكلمة المفتاحية المخصصة لتعريف الفئة. * <code>main</code>: نقطة الانطلاق الأساسية للبرنامج عند بدء التشغيل. togr0g7x598pmwbixk57b80di7nhykl 270724 270723 2026-10-11T20:33:47Z SanBonne 34889 /* الهيكل الأساسي للبرنامج */ 270724 wikitext text/x-wiki تحدد '''قواعد التركيب النحوي (Java Syntax)''' في لغة البرمجة جافا الصيغة القياسية والشروط المعيارية لكتابة الأكواد واستخدام الكلمات المفتاحية، والتي ينبغي للمُترجم (Java Compiler) اتباعها لتحويل الشفرة المصدريّة إلى لغة البايت (Bytecode). ترتبط صياغة جافا بصلة وثيقة بلغتي [[C (لغة برمجة)|C]] و[[C++]]، غير أنها فرضت هيكلية صارمة تعتمد كلياً على '''[[برمجة كائنية التوجه|البرمجة كائنية التوجه (OOP)]]''' وتنفيذ نظام '''الأنماط القوية (Strong Typing)'''. == الهيكل الأساسي للبرنامج == في لغة جافا، لا يمكن تنفيذ أي تعليمات برمجية خارج نطاق '''الفئات (Classes)'''؛ حيث يُكتب كل تطبيق داخل فئة واحدة على الأقل، ويشترط لتنفيذ البرنامج وجود دالة/أسلوب رئيسي يدعى <code>main</code>. <syntaxhighlight lang="java"> public class SyntaxExample { public static void main(String[] args) { System.out.println("مرحباً بك في ويكي الكتب"); } } </syntaxhighlight> * <code>public</code>: محدد وصول يُتيح استخدام الفئة أو الدالة من خارج الحزمة. * <code>class</code>: الكلمة المفتاحية المخصصة لتعريف الفئة. * <code>main</code>: نقطة الانطلاق الأساسية للبرنامج عند بدء التشغيل. == عناصر الصياغة البرمجية == تتألف شفرة جافا من عدة مكونات تركيبية رئيسية: === الكلمات المحجوزة (Keywords) === مجموعة من المفردات المعرفة مسبقاً في النظام ولا يُسمح باستخدامها كمعرفات، مثل: <code>class</code>، <code>public</code>، <code>static</code>، <code>void</code>، <code>if</code>، <code>else</code>، <code>while</code>، <code>return</code>. === المعرفات (Identifiers) === هي الأسماء المُسندة للمتغيرات، الدوال، والفئات. وتخضع للضوابط التالية: * تتكون من أحرف (A-Z أو a-z)، أو أرقام، أو العلامات (<code>_</code> و <code>$</code>). * لا يجوز أن تبدأ برقم. * جافا '''حساسة لحالة الأحرف (Case-Sensitive)'''؛ حيث يُعد <code>Variable</code> مختلفاً عن <code>variable</code>. === التعليقات (Comments) === تعليمات يُهملها المترجم وتُستخدم للشرح والتأثيث النصي: * تعليق سطر واحد: <code>// نص التعليق</code> * تعليق متعدد الأسطر: <code>/* نص التعليق */</code> * تعليق التوثيق (Javadoc): <code>/** نص التوثيق */</code> an0o3intw9eb1v0987obauh7qou5rw5 270725 270724 2026-10-11T20:34:13Z SanBonne 34889 /* عناصر الصياغة البرمجية */ 270725 wikitext text/x-wiki تحدد '''قواعد التركيب النحوي (Java Syntax)''' في لغة البرمجة جافا الصيغة القياسية والشروط المعيارية لكتابة الأكواد واستخدام الكلمات المفتاحية، والتي ينبغي للمُترجم (Java Compiler) اتباعها لتحويل الشفرة المصدريّة إلى لغة البايت (Bytecode). ترتبط صياغة جافا بصلة وثيقة بلغتي [[C (لغة برمجة)|C]] و[[C++]]، غير أنها فرضت هيكلية صارمة تعتمد كلياً على '''[[برمجة كائنية التوجه|البرمجة كائنية التوجه (OOP)]]''' وتنفيذ نظام '''الأنماط القوية (Strong Typing)'''. == الهيكل الأساسي للبرنامج == في لغة جافا، لا يمكن تنفيذ أي تعليمات برمجية خارج نطاق '''الفئات (Classes)'''؛ حيث يُكتب كل تطبيق داخل فئة واحدة على الأقل، ويشترط لتنفيذ البرنامج وجود دالة/أسلوب رئيسي يدعى <code>main</code>. <syntaxhighlight lang="java"> public class SyntaxExample { public static void main(String[] args) { System.out.println("مرحباً بك في ويكي الكتب"); } } </syntaxhighlight> * <code>public</code>: محدد وصول يُتيح استخدام الفئة أو الدالة من خارج الحزمة. * <code>class</code>: الكلمة المفتاحية المخصصة لتعريف الفئة. * <code>main</code>: نقطة الانطلاق الأساسية للبرنامج عند بدء التشغيل. == عناصر الصياغة البرمجية == تتألف شفرة جافا من عدة مكونات تركيبية رئيسية: === الكلمات المحجوزة (Keywords) === مجموعة من المفردات المعرفة مسبقاً في النظام ولا يُسمح باستخدامها كمعرفات، مثل: <code>class</code>، <code>public</code>، <code>static</code>، <code>void</code>، <code>if</code>، <code>else</code>، <code>while</code>، <code>return</code>. === المعرفات (Identifiers) === هي الأسماء المُسندة للمتغيرات، الدوال، والفئات. وتخضع للضوابط التالية: * تتكون من أحرف (A-Z أو a-z)، أو أرقام، أو العلامات (<code>_</code> و <code>$</code>). * لا يجوز أن تبدأ برقم. * جافا '''حساسة لحالة الأحرف (Case-Sensitive)'''؛ حيث يُعد <code>Variable</code> مختلفاً عن <code>variable</code>. === التعليقات (Comments) === تعليمات يُهملها المترجم وتُستخدم للشرح والتأثيث النصي: * تعليق سطر واحد: <code>// نص التعليق</code> * تعليق متعدد الأسطر: <code>/* نص التعليق */</code> * تعليق التوثيق (Javadoc): <code>/** نص التوثيق */</code> == المتغيرات وأنواع البيانات == تنقسم البيانات في لغة جافا إلى فئتين رئيسيتين: === الأنواع البدائية (Primitive Data Types) === تُخزن القيم الفعلية في الذاكرة المباشرة: {| class="wikitable" |- ! النوع !! الحجم !! الوصف |- | <code>byte</code> || 1 بايت || أعداد صحيحة صغيرة جداً |- | <code>short</code> || 2 بايت || أعداد صحيحة صغيرة |- | <code>int</code> || 4 بايت || أعداد صحيحة قياسية |- | <code>long</code> || 8 بايت || أعداد صحيحة كبيرة |- | <code>float</code> || 4 بايت || أعداد كسرية قياسية |- | <code>double</code> || 8 بايت || أعداد كسرية دقيقة |- | <code>char</code> || 2 بايت || رمز أو حرف واحد (Unicode) |- | <code>boolean</code> || 1 بت || قيمة منطقية (<code>true</code> أو <code>false</code>) |} === الأنواع المرجعية (Reference Data Types) === تُشير إلى مواقع الكائنات في الذاكرة (Heap Memory)، ومنها: النصوص (<code>String</code>)، المصفوفات (<code>Arrays</code>)، والكائنات المخصصة (<code>Objects</code>). <syntaxhighlight lang="java"> int count = 10; double price = 99.99; boolean isActive = true; String title = "التركيب النحوي"; </syntaxhighlight> == الجمل الشرطية وحلقات التكرار == === التحكم الشرطي === تُستخدم التراكيب الشرطية لاتخاذ القرارات بناءً على تحقق شروط منطقية: <syntaxhighlight lang="java"> if (score >= 50) { System.out.println("ناجح"); } else { System.out.println("راسب"); } </syntaxhighlight> كما يمكن استخدام تركيب <code>switch</code> للتحقق من قيم متعددة لمتغير واحد. === التكرار والتدفق === تتضمن لغة جافا ثلاثة هياكل رئيسية للتكرار: * '''حلقة <code>for</code>''': تُستخدم عند معرفة عدد التكرارات مسبقاً. * '''حلقة <code>while</code>''': تتكرر طالما تحقق الشرط المنطقي. * '''حلقة <code>do-while</code>''': تضمن تنفيذ الكود مرة واحدة على الأقل قبل فحص الشرط. == انظر أيضاً == * [[البرمجة بلغة جافا/الأنواع والمطبقات|الأنواع والمطبقات في جافا]] * [[البرمجة بلغة جافا/الوراثة|الوراثة والواجهات]] * [[البرمجة بلغة جافا/الاستثناءات|معالجة الاستثناءات]] 1l3iamna5t3bnzprriqzvrka0h5zrzq 270733 270725 2026-10-11T20:40:58Z SanBonne 34889 نقلت SanBonne صفحة [[برمجة جافا/التركيب النحوي]] إلى [[البرمجة بلغة جافا/التركيب النحوي]]: عنوان مكتوب بشكل خاطئ 270725 wikitext text/x-wiki تحدد '''قواعد التركيب النحوي (Java Syntax)''' في لغة البرمجة جافا الصيغة القياسية والشروط المعيارية لكتابة الأكواد واستخدام الكلمات المفتاحية، والتي ينبغي للمُترجم (Java Compiler) اتباعها لتحويل الشفرة المصدريّة إلى لغة البايت (Bytecode). ترتبط صياغة جافا بصلة وثيقة بلغتي [[C (لغة برمجة)|C]] و[[C++]]، غير أنها فرضت هيكلية صارمة تعتمد كلياً على '''[[برمجة كائنية التوجه|البرمجة كائنية التوجه (OOP)]]''' وتنفيذ نظام '''الأنماط القوية (Strong Typing)'''. == الهيكل الأساسي للبرنامج == في لغة جافا، لا يمكن تنفيذ أي تعليمات برمجية خارج نطاق '''الفئات (Classes)'''؛ حيث يُكتب كل تطبيق داخل فئة واحدة على الأقل، ويشترط لتنفيذ البرنامج وجود دالة/أسلوب رئيسي يدعى <code>main</code>. <syntaxhighlight lang="java"> public class SyntaxExample { public static void main(String[] args) { System.out.println("مرحباً بك في ويكي الكتب"); } } </syntaxhighlight> * <code>public</code>: محدد وصول يُتيح استخدام الفئة أو الدالة من خارج الحزمة. * <code>class</code>: الكلمة المفتاحية المخصصة لتعريف الفئة. * <code>main</code>: نقطة الانطلاق الأساسية للبرنامج عند بدء التشغيل. == عناصر الصياغة البرمجية == تتألف شفرة جافا من عدة مكونات تركيبية رئيسية: === الكلمات المحجوزة (Keywords) === مجموعة من المفردات المعرفة مسبقاً في النظام ولا يُسمح باستخدامها كمعرفات، مثل: <code>class</code>، <code>public</code>، <code>static</code>، <code>void</code>، <code>if</code>، <code>else</code>، <code>while</code>، <code>return</code>. === المعرفات (Identifiers) === هي الأسماء المُسندة للمتغيرات، الدوال، والفئات. وتخضع للضوابط التالية: * تتكون من أحرف (A-Z أو a-z)، أو أرقام، أو العلامات (<code>_</code> و <code>$</code>). * لا يجوز أن تبدأ برقم. * جافا '''حساسة لحالة الأحرف (Case-Sensitive)'''؛ حيث يُعد <code>Variable</code> مختلفاً عن <code>variable</code>. === التعليقات (Comments) === تعليمات يُهملها المترجم وتُستخدم للشرح والتأثيث النصي: * تعليق سطر واحد: <code>// نص التعليق</code> * تعليق متعدد الأسطر: <code>/* نص التعليق */</code> * تعليق التوثيق (Javadoc): <code>/** نص التوثيق */</code> == المتغيرات وأنواع البيانات == تنقسم البيانات في لغة جافا إلى فئتين رئيسيتين: === الأنواع البدائية (Primitive Data Types) === تُخزن القيم الفعلية في الذاكرة المباشرة: {| class="wikitable" |- ! النوع !! الحجم !! الوصف |- | <code>byte</code> || 1 بايت || أعداد صحيحة صغيرة جداً |- | <code>short</code> || 2 بايت || أعداد صحيحة صغيرة |- | <code>int</code> || 4 بايت || أعداد صحيحة قياسية |- | <code>long</code> || 8 بايت || أعداد صحيحة كبيرة |- | <code>float</code> || 4 بايت || أعداد كسرية قياسية |- | <code>double</code> || 8 بايت || أعداد كسرية دقيقة |- | <code>char</code> || 2 بايت || رمز أو حرف واحد (Unicode) |- | <code>boolean</code> || 1 بت || قيمة منطقية (<code>true</code> أو <code>false</code>) |} === الأنواع المرجعية (Reference Data Types) === تُشير إلى مواقع الكائنات في الذاكرة (Heap Memory)، ومنها: النصوص (<code>String</code>)، المصفوفات (<code>Arrays</code>)، والكائنات المخصصة (<code>Objects</code>). <syntaxhighlight lang="java"> int count = 10; double price = 99.99; boolean isActive = true; String title = "التركيب النحوي"; </syntaxhighlight> == الجمل الشرطية وحلقات التكرار == === التحكم الشرطي === تُستخدم التراكيب الشرطية لاتخاذ القرارات بناءً على تحقق شروط منطقية: <syntaxhighlight lang="java"> if (score >= 50) { System.out.println("ناجح"); } else { System.out.println("راسب"); } </syntaxhighlight> كما يمكن استخدام تركيب <code>switch</code> للتحقق من قيم متعددة لمتغير واحد. === التكرار والتدفق === تتضمن لغة جافا ثلاثة هياكل رئيسية للتكرار: * '''حلقة <code>for</code>''': تُستخدم عند معرفة عدد التكرارات مسبقاً. * '''حلقة <code>while</code>''': تتكرر طالما تحقق الشرط المنطقي. * '''حلقة <code>do-while</code>''': تضمن تنفيذ الكود مرة واحدة على الأقل قبل فحص الشرط. == انظر أيضاً == * [[البرمجة بلغة جافا/الأنواع والمطبقات|الأنواع والمطبقات في جافا]] * [[البرمجة بلغة جافا/الوراثة|الوراثة والواجهات]] * [[البرمجة بلغة جافا/الاستثناءات|معالجة الاستثناءات]] 1l3iamna5t3bnzprriqzvrka0h5zrzq 270738 270733 2026-10-11T20:43:49Z SanBonne 34889 270738 wikitext text/x-wiki تحدد '''قواعد التركيب النحوي (Java Syntax)''' في لغة البرمجة جافا الصيغة القياسية والشروط المعيارية لكتابة الأكواد واستخدام الكلمات المفتاحية، والتي ينبغي للمُترجم (Java Compiler) اتباعها لتحويل الشفرة المصدريّة إلى لغة البايت (Bytecode). ترتبط صياغة جافا بصلة وثيقة بلغتي [[C (لغة برمجة)|C]] و[[C++]]، غير أنها فرضت هيكلية صارمة تعتمد كلياً على '''[[برمجة كائنية التوجه|البرمجة كائنية التوجه (OOP)]]''' وتنفيذ نظام '''الأنماط القوية (Strong Typing)'''. == الهيكل الأساسي للبرنامج == في لغة جافا، لا يمكن تنفيذ أي تعليمات برمجية خارج نطاق '''الفئات (Classes)'''؛ حيث يُكتب كل تطبيق داخل فئة واحدة على الأقل، ويشترط لتنفيذ البرنامج وجود دالة/أسلوب رئيسي يدعى <code>main</code>. <syntaxhighlight lang="java"> public class SyntaxExample { public static void main(String[] args) { System.out.println("مرحباً بك في ويكي الكتب"); } } </syntaxhighlight> * <code>public</code>: محدد وصول يُتيح استخدام الفئة أو الدالة من خارج الحزمة. * <code>class</code>: الكلمة المفتاحية المخصصة لتعريف الفئة. * <code>main</code>: نقطة الانطلاق الأساسية للبرنامج عند بدء التشغيل. == عناصر الصياغة البرمجية == تتألف شفرة جافا من عدة مكونات تركيبية رئيسية: === الكلمات المحجوزة (Keywords) === مجموعة من المفردات المعرفة مسبقاً في النظام ولا يُسمح باستخدامها كمعرفات، مثل: <code>class</code>، <code>public</code>، <code>static</code>، <code>void</code>، <code>if</code>، <code>else</code>، <code>while</code>، <code>return</code>. === المعرفات (Identifiers) === هي الأسماء المُسندة للمتغيرات، الدوال، والفئات. وتخضع للضوابط التالية: * تتكون من أحرف (A-Z أو a-z)، أو أرقام، أو العلامات (<code>_</code> و <code>$</code>). * لا يجوز أن تبدأ برقم. * جافا '''حساسة لحالة الأحرف (Case-Sensitive)'''؛ حيث يُعد <code>Variable</code> مختلفاً عن <code>variable</code>. === التعليقات (Comments) === تعليمات يُهملها المترجم وتُستخدم للشرح والتأثيث النصي: * تعليق سطر واحد: <code>// نص التعليق</code> * تعليق متعدد الأسطر: <code>/* نص التعليق */</code> * تعليق التوثيق (Javadoc): <code>/** نص التوثيق */</code> == المتغيرات وأنواع البيانات == تنقسم البيانات في لغة جافا إلى فئتين رئيسيتين: === الأنواع البدائية (Primitive Data Types) === تُخزن القيم الفعلية في الذاكرة المباشرة: {| class="wikitable" |- ! النوع !! الحجم !! الوصف |- | <code>byte</code> || 1 بايت || أعداد صحيحة صغيرة جداً |- | <code>short</code> || 2 بايت || أعداد صحيحة صغيرة |- | <code>int</code> || 4 بايت || أعداد صحيحة قياسية |- | <code>long</code> || 8 بايت || أعداد صحيحة كبيرة |- | <code>float</code> || 4 بايت || أعداد كسرية قياسية |- | <code>double</code> || 8 بايت || أعداد كسرية دقيقة |- | <code>char</code> || 2 بايت || رمز أو حرف واحد (Unicode) |- | <code>boolean</code> || 1 بت || قيمة منطقية (<code>true</code> أو <code>false</code>) |} === الأنواع المرجعية (Reference Data Types) === تُشير إلى مواقع الكائنات في الذاكرة (Heap Memory)، ومنها: النصوص (<code>String</code>)، المصفوفات (<code>Arrays</code>)، والكائنات المخصصة (<code>Objects</code>). <syntaxhighlight lang="java"> int count = 10; double price = 99.99; boolean isActive = true; String title = "التركيب النحوي"; </syntaxhighlight> == الجمل الشرطية وحلقات التكرار == === التحكم الشرطي === تُستخدم التراكيب الشرطية لاتخاذ القرارات بناءً على تحقق شروط منطقية: <syntaxhighlight lang="java"> if (score >= 50) { System.out.println("ناجح"); } else { System.out.println("راسب"); } </syntaxhighlight> كما يمكن استخدام تركيب <code>switch</code> للتحقق من قيم متعددة لمتغير واحد. === التكرار والتدفق === تتضمن لغة جافا ثلاثة هياكل رئيسية للتكرار: * '''حلقة <code>for</code>''': تُستخدم عند معرفة عدد التكرارات مسبقاً. * '''حلقة <code>while</code>''': تتكرر طالما تحقق الشرط المنطقي. * '''حلقة <code>do-while</code>''': تضمن تنفيذ الكود مرة واحدة على الأقل قبل فحص الشرط. == انظر أيضاً == * [[البرمجة بلغة جافا/الأنواع والمطبقات|الأنواع والمطبقات في جافا]] * [[البرمجة بلغة جافا/الوراثة|الوراثة والواجهات]] * [[البرمجة بلغة جافا/الاستثناءات|معالجة الاستثناءات]] [[تصنيف:البرمجة بلغة جافا]] p6m9yz8mmuov8kolp21kddtcm8bxtzf 270739 270738 2026-10-11T20:44:32Z SanBonne 34889 /* انظر أيضاً */ 270739 wikitext text/x-wiki تحدد '''قواعد التركيب النحوي (Java Syntax)''' في لغة البرمجة جافا الصيغة القياسية والشروط المعيارية لكتابة الأكواد واستخدام الكلمات المفتاحية، والتي ينبغي للمُترجم (Java Compiler) اتباعها لتحويل الشفرة المصدريّة إلى لغة البايت (Bytecode). ترتبط صياغة جافا بصلة وثيقة بلغتي [[C (لغة برمجة)|C]] و[[C++]]، غير أنها فرضت هيكلية صارمة تعتمد كلياً على '''[[برمجة كائنية التوجه|البرمجة كائنية التوجه (OOP)]]''' وتنفيذ نظام '''الأنماط القوية (Strong Typing)'''. == الهيكل الأساسي للبرنامج == في لغة جافا، لا يمكن تنفيذ أي تعليمات برمجية خارج نطاق '''الفئات (Classes)'''؛ حيث يُكتب كل تطبيق داخل فئة واحدة على الأقل، ويشترط لتنفيذ البرنامج وجود دالة/أسلوب رئيسي يدعى <code>main</code>. <syntaxhighlight lang="java"> public class SyntaxExample { public static void main(String[] args) { System.out.println("مرحباً بك في ويكي الكتب"); } } </syntaxhighlight> * <code>public</code>: محدد وصول يُتيح استخدام الفئة أو الدالة من خارج الحزمة. * <code>class</code>: الكلمة المفتاحية المخصصة لتعريف الفئة. * <code>main</code>: نقطة الانطلاق الأساسية للبرنامج عند بدء التشغيل. == عناصر الصياغة البرمجية == تتألف شفرة جافا من عدة مكونات تركيبية رئيسية: === الكلمات المحجوزة (Keywords) === مجموعة من المفردات المعرفة مسبقاً في النظام ولا يُسمح باستخدامها كمعرفات، مثل: <code>class</code>، <code>public</code>، <code>static</code>، <code>void</code>، <code>if</code>، <code>else</code>، <code>while</code>، <code>return</code>. === المعرفات (Identifiers) === هي الأسماء المُسندة للمتغيرات، الدوال، والفئات. وتخضع للضوابط التالية: * تتكون من أحرف (A-Z أو a-z)، أو أرقام، أو العلامات (<code>_</code> و <code>$</code>). * لا يجوز أن تبدأ برقم. * جافا '''حساسة لحالة الأحرف (Case-Sensitive)'''؛ حيث يُعد <code>Variable</code> مختلفاً عن <code>variable</code>. === التعليقات (Comments) === تعليمات يُهملها المترجم وتُستخدم للشرح والتأثيث النصي: * تعليق سطر واحد: <code>// نص التعليق</code> * تعليق متعدد الأسطر: <code>/* نص التعليق */</code> * تعليق التوثيق (Javadoc): <code>/** نص التوثيق */</code> == المتغيرات وأنواع البيانات == تنقسم البيانات في لغة جافا إلى فئتين رئيسيتين: === الأنواع البدائية (Primitive Data Types) === تُخزن القيم الفعلية في الذاكرة المباشرة: {| class="wikitable" |- ! النوع !! الحجم !! الوصف |- | <code>byte</code> || 1 بايت || أعداد صحيحة صغيرة جداً |- | <code>short</code> || 2 بايت || أعداد صحيحة صغيرة |- | <code>int</code> || 4 بايت || أعداد صحيحة قياسية |- | <code>long</code> || 8 بايت || أعداد صحيحة كبيرة |- | <code>float</code> || 4 بايت || أعداد كسرية قياسية |- | <code>double</code> || 8 بايت || أعداد كسرية دقيقة |- | <code>char</code> || 2 بايت || رمز أو حرف واحد (Unicode) |- | <code>boolean</code> || 1 بت || قيمة منطقية (<code>true</code> أو <code>false</code>) |} === الأنواع المرجعية (Reference Data Types) === تُشير إلى مواقع الكائنات في الذاكرة (Heap Memory)، ومنها: النصوص (<code>String</code>)، المصفوفات (<code>Arrays</code>)، والكائنات المخصصة (<code>Objects</code>). <syntaxhighlight lang="java"> int count = 10; double price = 99.99; boolean isActive = true; String title = "التركيب النحوي"; </syntaxhighlight> == الجمل الشرطية وحلقات التكرار == === التحكم الشرطي === تُستخدم التراكيب الشرطية لاتخاذ القرارات بناءً على تحقق شروط منطقية: <syntaxhighlight lang="java"> if (score >= 50) { System.out.println("ناجح"); } else { System.out.println("راسب"); } </syntaxhighlight> كما يمكن استخدام تركيب <code>switch</code> للتحقق من قيم متعددة لمتغير واحد. === التكرار والتدفق === تتضمن لغة جافا ثلاثة هياكل رئيسية للتكرار: * '''حلقة <code>for</code>''': تُستخدم عند معرفة عدد التكرارات مسبقاً. * '''حلقة <code>while</code>''': تتكرر طالما تحقق الشرط المنطقي. * '''حلقة <code>do-while</code>''': تضمن تنفيذ الكود مرة واحدة على الأقل قبل فحص الشرط. == انظر أيضاً == * [[البرمجة بلغة جافا/أساسيات جافا|أساسيات جافا]] [[تصنيف:البرمجة بلغة جافا]] 4gb5x68hpjjngrggqj954pyi88oeblu وحدة:Message box 828 45655 270757 218857 2026-10-12T10:04:00Z SanBonne 34889 270757 Scribunto text/plain require('strict') local getArgs local yesno = require('Module:Yesno') local lang = mw.language.getContentLanguage() local CONFIG_MODULE = 'Module:Message box/configuration' local DEMOSPACES = {talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'} -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local function getTitleObject(...) -- Get the title object, passing the function through pcall -- in case we are over the expensive function count limit. local success, title = pcall(mw.title.new, ...) if success then return title end end local function union(t1, t2) -- Returns the union of two arrays. local vals = {} for i, v in ipairs(t1) do vals[v] = true end for i, v in ipairs(t2) do vals[v] = true end local ret = {} for k in pairs(vals) do table.insert(ret, k) end table.sort(ret) return ret end local function getArgNums(args, prefix) local nums = {} for k, v in pairs(args) do local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$') if num then table.insert(nums, tonumber(num)) end end table.sort(nums) return nums end -------------------------------------------------------------------------------- -- Box class definition -------------------------------------------------------------------------------- local MessageBox = {} MessageBox.__index = MessageBox function MessageBox.new(boxType, args, cfg) args = args or {} local obj = {} -- Set the title object and the namespace. obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle() -- Set the config for our box type. obj.cfg = cfg[boxType] if not obj.cfg then local ns = obj.title.namespace -- boxType is "mbox" or invalid input if args.demospace and args.demospace ~= '' then -- implement demospace parameter of mbox local demospace = string.lower(args.demospace) if DEMOSPACES[demospace] then -- use template from DEMOSPACES obj.cfg = cfg[DEMOSPACES[demospace]] elseif string.find( demospace, 'talk' ) then -- demo as a talk page obj.cfg = cfg.tmbox else -- default to ombox obj.cfg = cfg.ombox end elseif ns == 0 then obj.cfg = cfg.ambox -- main namespace elseif ns == 6 then obj.cfg = cfg.imbox -- file namespace elseif ns == 14 then obj.cfg = cfg.cmbox -- category namespace else local nsTable = mw.site.namespaces[ns] if nsTable and nsTable.isTalk then obj.cfg = cfg.tmbox -- any talk namespace else obj.cfg = cfg.ombox -- other namespaces or invalid input end end end -- Set the arguments, and remove all blank arguments except for the ones -- listed in cfg.allowBlankParams. do local newArgs = {} for k, v in pairs(args) do if v ~= '' then newArgs[k] = v end end for i, param in ipairs(obj.cfg.allowBlankParams or {}) do newArgs[param] = args[param] end obj.args = newArgs end -- Define internal data structure. obj.categories = {} obj.classes = {} -- For lazy loading of [[Module:Category handler]]. obj.hasCategories = false return setmetatable(obj, MessageBox) end function MessageBox:addCat(ns, cat, sort) if not cat then return nil end if sort then cat = string.format('[[Category:%s|%s]]', cat, sort) else cat = string.format('[[Category:%s]]', cat) end self.hasCategories = true self.categories[ns] = self.categories[ns] or {} table.insert(self.categories[ns], cat) end function MessageBox:addClass(class) if not class then return nil end table.insert(self.classes, class) end function MessageBox:setParameters() local args = self.args local cfg = self.cfg -- Get type data. self.type = args.type local typeData = cfg.types[self.type] self.invalidTypeError = cfg.showInvalidTypeError and self.type and not typeData typeData = typeData or cfg.types[cfg.default] self.typeClass = typeData.class self.typeImage = typeData.image self.typeImageNeedsLink = typeData.imageNeedsLink -- Find if the box has been wrongly substituted. self.isSubstituted = cfg.substCheck and args.subst == 'SUBST' -- Find whether we are using a small message box. self.isSmall = cfg.allowSmall and ( cfg.smallParam and args.small == cfg.smallParam or not cfg.smallParam and yesno(args.small) ) -- Add attributes, classes and styles. self.id = args.id self.name = args.name if self.name then self:addClass('box-' .. string.gsub(self.name,' ','_')) end if yesno(args.plainlinks) ~= false then self:addClass('plainlinks') end for _, class in ipairs(cfg.classes or {}) do self:addClass(class) end if self.isSmall then self:addClass(cfg.smallClass or 'mbox-small') end self:addClass(self.typeClass) self:addClass(args.class) self.style = args.style self.attrs = args.attrs -- Set text style. self.textstyle = args.textstyle -- Set image classes. self.imageRightClass = args.imagerightclass or args.imageclass self.imageLeftClass = args.imageleftclass or args.imageclass -- Find if we are on the template page or not. This functionality is only -- used if useCollapsibleTextFields is set, or if both cfg.templateCategory -- and cfg.templateCategoryRequireName are set. self.useCollapsibleTextFields = cfg.useCollapsibleTextFields if self.useCollapsibleTextFields or cfg.templateCategory and cfg.templateCategoryRequireName then if self.name then local templateName = mw.ustring.match( self.name, '^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$' ) or self.name templateName = 'Template:' .. templateName self.templateTitle = getTitleObject(templateName) end self.isTemplatePage = self.templateTitle and mw.title.equals(self.title, self.templateTitle) end -- Process data for collapsible text fields. At the moment these are only -- used in {{ambox}}. if self.useCollapsibleTextFields then -- Get the self.issue value. if self.isSmall and args.smalltext then self.issue = args.smalltext else local sect if args.sect == '' then sect = 'This ' .. (cfg.sectionDefault or 'page') elseif type(args.sect) == 'string' then sect = 'This ' .. args.sect end local issue = args.issue issue = type(issue) == 'string' and issue ~= '' and issue or nil local text = args.text text = type(text) == 'string' and text or nil local issues = {} table.insert(issues, sect) table.insert(issues, issue) table.insert(issues, text) self.issue = table.concat(issues, ' ') end -- Get the self.talk value. local talk = args.talk -- Show talk links on the template page or template subpages if the talk -- parameter is blank. if talk == '' and self.templateTitle and ( mw.title.equals(self.templateTitle, self.title) or self.title:isSubpageOf(self.templateTitle) ) then talk = '#' elseif talk == '' then talk = nil end if talk then -- If the talk value is a talk page, make a link to that page. Else -- assume that it's a section heading, and make a link to the talk -- page of the current page with that section heading. local talkTitle = getTitleObject(talk) local talkArgIsTalkPage = true if not talkTitle or not talkTitle.isTalkPage then talkArgIsTalkPage = false talkTitle = getTitleObject( self.title.text, mw.site.namespaces[self.title.namespace].talk.id ) end if talkTitle and talkTitle.exists then local talkText if self.isSmall then local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. '#' .. talk) talkText = string.format('([[%s|talk]])', talkLink) else talkText = 'Relevant discussion may be found on' if talkArgIsTalkPage then talkText = string.format( '%s [[%s|%s]].', talkText, talk, talkTitle.prefixedText ) else talkText = string.format( '%s the [[%s#%s|talk page]].', talkText, talkTitle.prefixedText, talk ) end end self.talk = talkText end end -- Get other values. self.fix = args.fix ~= '' and args.fix or nil local date if args.date and args.date ~= '' then date = args.date elseif args.date == '' and self.isTemplatePage then date = lang:formatDate('F Y') end if date then self.date = string.format(" <span class='date-container'><i>(<span class='date'>%s</span>)</i></span>", date) end self.info = args.info if yesno(args.removalnotice) then self.removalNotice = cfg.removalNotice end end -- Set the non-collapsible text field. At the moment this is used by all box -- types other than ambox, and also by ambox when small=yes. if self.isSmall then self.text = args.smalltext or args.text else self.text = args.text end -- Set the below row. self.below = cfg.below and args.below -- General image settings. self.imageCellDiv = not self.isSmall and cfg.imageCellDiv self.imageEmptyCell = cfg.imageEmptyCell -- Left image settings. local imageLeft = self.isSmall and args.smallimage or args.image if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none' or not cfg.imageCheckBlank and imageLeft ~= 'none' then self.imageLeft = imageLeft if not imageLeft then local imageSize = self.isSmall and (cfg.imageSmallSize or '30x30px') or '40x40px' self.imageLeft = string.format('[[File:%s|%s%s|alt=]]', self.typeImage or 'Information icon4.svg', imageSize, self.typeImageNeedsLink and "" or "|link=" ) end end -- Right image settings. local imageRight = self.isSmall and args.smallimageright or args.imageright if not (cfg.imageRightNone and imageRight == 'none') then self.imageRight = imageRight end -- set templatestyles self.base_templatestyles = cfg.templatestyles self.templatestyles = args.templatestyles end function MessageBox:setMainspaceCategories() local args = self.args local cfg = self.cfg if not cfg.allowMainspaceCategories then return nil end local nums = {} for _, prefix in ipairs{'cat', 'category', 'all'} do args[prefix .. '1'] = args[prefix] nums = union(nums, getArgNums(args, prefix)) end -- The following is roughly equivalent to the old {{Ambox/category}}. local date = args.date date = type(date) == 'string' and date local preposition = 'from' for _, num in ipairs(nums) do local mainCat = args['cat' .. tostring(num)] or args['category' .. tostring(num)] local allCat = args['all' .. tostring(num)] mainCat = type(mainCat) == 'string' and mainCat allCat = type(allCat) == 'string' and allCat if mainCat and date and date ~= '' then local catTitle = string.format('%s %s %s', mainCat, preposition, date) self:addCat(0, catTitle) catTitle = getTitleObject('Category:' .. catTitle) if not catTitle or not catTitle.exists then self:addCat(0, 'Articles with invalid date parameter in template') end elseif mainCat and (not date or date == '') then self:addCat(0, mainCat) end if allCat then self:addCat(0, allCat) end end end function MessageBox:setTemplateCategories() local args = self.args local cfg = self.cfg -- Add template categories. if cfg.templateCategory then if cfg.templateCategoryRequireName then if self.isTemplatePage then self:addCat(10, cfg.templateCategory) end elseif not self.title.isSubpage then self:addCat(10, cfg.templateCategory) end end -- Add template error categories. if cfg.templateErrorCategory then local templateErrorCategory = cfg.templateErrorCategory local templateCat, templateSort if not self.name and not self.title.isSubpage then templateCat = templateErrorCategory elseif self.isTemplatePage then local paramsToCheck = cfg.templateErrorParamsToCheck or {} local count = 0 for i, param in ipairs(paramsToCheck) do if not args[param] then count = count + 1 end end if count > 0 then templateCat = templateErrorCategory templateSort = tostring(count) end if self.categoryNums and #self.categoryNums > 0 then templateCat = templateErrorCategory templateSort = 'C' end end self:addCat(10, templateCat, templateSort) end end function MessageBox:setAllNamespaceCategories() -- Set categories for all namespaces. if self.invalidTypeError then local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort) end if self.isSubstituted then self:addCat('all', 'Pages with incorrectly substituted templates') end end function MessageBox:setCategories() if self.title.namespace == 0 then self:setMainspaceCategories() elseif self.title.namespace == 10 then self:setTemplateCategories() end self:setAllNamespaceCategories() end function MessageBox:renderCategories() if not self.hasCategories then -- No categories added, no need to pass them to Category handler so, -- if it was invoked, it would return the empty string. -- So we shortcut and return the empty string. return "" end -- Convert category tables to strings and pass them through -- [[Module:Category handler]]. return require('Module:Category handler')._main{ main = table.concat(self.categories[0] or {}), template = table.concat(self.categories[10] or {}), all = table.concat(self.categories.all or {}), nocat = self.args.nocat, page = self.args.page } end function MessageBox:export() local root = mw.html.create() -- Add the subst check error. if self.isSubstituted and self.name then root:tag('b') :addClass('error') :wikitext(string.format( 'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.', mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}') )) end local frame = mw.getCurrentFrame() root:wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = self.base_templatestyles }, }) -- Add support for a single custom templatestyles sheet. Undocumented as -- need should be limited and many templates using mbox are substed; we -- don't want to spread templatestyles sheets around to arbitrary places if self.templatestyles then root:wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = self.templatestyles }, }) end -- Create the box table. local boxTable = root:tag('table') boxTable:attr('id', self.id or nil) for i, class in ipairs(self.classes or {}) do boxTable:addClass(class or nil) end boxTable :cssText(self.style or nil) :attr('role', 'presentation') if self.attrs then boxTable:attr(self.attrs) end -- Add the left-hand image. local row = boxTable:tag('tr') if self.imageLeft then local imageLeftCell = row:tag('td'):addClass('mbox-image') if self.imageCellDiv then -- If we are using a div, redefine imageLeftCell so that the image -- is inside it. Divs use style="width: 52px;", which limits the -- image width to 52px. If any images in a div are wider than that, -- they may overlap with the text or cause other display problems. imageLeftCell = imageLeftCell:tag('div'):addClass('mbox-image-div') end imageLeftCell :addClass(self.imageLeftClass) :wikitext(self.imageLeft or nil) elseif self.imageEmptyCell then -- Some message boxes define an empty cell if no image is specified, and -- some don't. The old template code in templates where empty cells are -- specified gives the following hint: "No image. Cell with some width -- or padding necessary for text cell to have 100% width." row:tag('td') :addClass('mbox-empty-cell') end -- Add the text. local textCell = row:tag('td'):addClass('mbox-text') if self.useCollapsibleTextFields then -- The message box uses advanced text parameters that allow things to be -- collapsible. At the moment, only ambox uses this. textCell:cssText(self.textstyle or nil) local textCellDiv = textCell:tag('div') textCellDiv :addClass('mbox-text-span') :wikitext(self.issue or nil) if (self.talk or self.fix) then textCellDiv:tag('span') :addClass('hide-when-compact') :wikitext(self.talk and (' ' .. self.talk) or nil) :wikitext(self.fix and (' ' .. self.fix) or nil) end textCellDiv:wikitext(self.date and (' ' .. self.date) or nil) if self.info and not self.isSmall then textCellDiv :tag('span') :addClass('hide-when-compact') :wikitext(self.info and (' ' .. self.info) or nil) end if self.removalNotice then textCellDiv:tag('span') :addClass('hide-when-compact') :tag('i') :wikitext(string.format(" (%s)", self.removalNotice)) end else -- Default text formatting - anything goes. textCell :cssText(self.textstyle or nil) :wikitext(self.text or nil) end -- Add the right-hand image. if self.imageRight then local imageRightCell = row:tag('td'):addClass('mbox-imageright') if self.imageCellDiv then -- If we are using a div, redefine imageRightCell so that the image -- is inside it. imageRightCell = imageRightCell:tag('div'):addClass('mbox-image-div') end imageRightCell :addClass(self.imageRightClass) :wikitext(self.imageRight or nil) end -- Add the below row. if self.below then boxTable:tag('tr') :tag('td') :attr('colspan', self.imageRight and '3' or '2') :addClass('mbox-text') :cssText(self.textstyle or nil) :wikitext(self.below or nil) end -- Add error message for invalid type parameters. if self.invalidTypeError then root:tag('div') :addClass('mbox-invalid-type') :wikitext(string.format( 'This message box is using an invalid "type=%s" parameter and needs fixing.', self.type or '' )) end -- Add categories. root:wikitext(self:renderCategories() or nil) return tostring(root) end -------------------------------------------------------------------------------- -- Exports -------------------------------------------------------------------------------- local p, mt = {}, {} function p._exportClasses() -- For testing. return { MessageBox = MessageBox } end function p.main(boxType, args, cfgTables) local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE)) box:setParameters() box:setCategories() return box:export() end function mt.__index(t, k) return function (frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end return t.main(k, getArgs(frame, {trim = false, removeBlanks = false})) end end return setmetatable(p, mt) ca6g5f6jxmv1y7dh20wx0vvr5b5qk88 وحدة:Message box/configuration 828 45807 270740 218809 2026-10-12T09:34:46Z SanBonne 34889 270740 Scribunto text/plain --------------------------------------------------------------------------------- -- تكوين صندوق الرسالة (Message box) -- -- -- -- يحتوي هذا الموديول على بيانات التكوين لـ [[وحدة:Message box]]. -- --------------------------------------------------------------------------------- return { ambox = { types = { speedy = { class = 'ambox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ambox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ambox-content', image = 'Ambox important.svg' }, style = { class = 'ambox-style', image = 'Edit-clear.svg' }, move = { class = 'ambox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ambox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'ambox-notice', image = 'Information icon4.svg' } }, default = 'notice', allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'}, allowSmall = true, smallParam = 'left', smallClass = 'mbox-small-left', substCheck = true, classes = {'metadata', 'ambox'}, imageEmptyCell = true, imageCheckBlank = true, imageSmallSize = '20x20px', imageCellDiv = true, useCollapsibleTextFields = true, imageRightNone = true, sectionDefault = 'article', allowMainspaceCategories = true, templateCategory = 'قوالب رسائل الصفحات', templateCategoryRequireName = true, templateErrorCategory = 'قوالب رسائل الصفحات بنقص في الوسائط', templateErrorParamsToCheck = {'issue', 'fix', 'subst'}, removalNotice = '<small>[[مساعدة:إزالة قالب صيانة|تعلم متى وكيف تزيل هذه الرسالة]]</small>', templatestyles = 'وحدة:Message box/ambox.css' }, cmbox = { types = { speedy = { class = 'cmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'cmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'cmbox-content', image = 'Ambox important.svg' }, style = { class = 'cmbox-style', image = 'Edit-clear.svg' }, move = { class = 'cmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'cmbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'cmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'cmbox'}, imageEmptyCell = true, templatestyles = 'وحدة:Message box/cmbox.css' }, fmbox = { types = { warning = { class = 'fmbox-warning', image = 'Ambox warning pn.svg' }, editnotice = { class = 'fmbox-editnotice', image = 'Information icon4.svg' }, system = { class = 'fmbox-system', image = 'Information icon4.svg' } }, default = 'system', showInvalidTypeError = true, classes = {'fmbox'}, imageEmptyCell = false, imageRightNone = false, templatestyles = 'وحدة:Message box/fmbox.css' }, imbox = { types = { speedy = { class = 'imbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'imbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'imbox-content', image = 'Ambox important.svg' }, style = { class = 'imbox-style', image = 'Edit-clear.svg' }, move = { class = 'imbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'imbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, license = { class = 'imbox-license licensetpl', image = 'Imbox-license.svg' }, ["license-related"] = { class = 'imbox-license', image = 'Imbox-license.svg' }, featured = { class = 'imbox-featured', image = 'Cscr-featured.svg', imageNeedsLink = true }, notice = { class = 'imbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'imbox'}, imageEmptyCell = true, below = true, templateCategory = 'قوالب رسائل الملفات', templatestyles = 'وحدة:Message box/imbox.css' }, ombox = { types = { speedy = { class = 'ombox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ombox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ombox-content', image = 'Ambox important.svg' }, style = { class = 'ombox-style', image = 'Edit-clear.svg' }, move = { class = 'ombox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ombox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'ombox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'ombox'}, allowSmall = true, imageEmptyCell = true, imageRightNone = true, templatestyles = 'وحدة:Message box/ombox.css' }, tmbox = { types = { speedy = { class = 'tmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'tmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'tmbox-content', image = 'Ambox important.svg' }, style = { class = 'tmbox-style', image = 'Edit-clear.svg' }, move = { class = 'tmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'tmbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'tmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'tmbox'}, allowSmall = true, imageRightNone = true, imageEmptyCell = true, templateCategory = 'قوالب رسائل النقاش', templatestyles = 'وحدة:Message box/tmbox.css' } } adphifdf7ws56n20ov2g2l7hxeeo125 270761 270740 2026-10-12T10:27:21Z SanBonne 34889 270761 Scribunto text/plain --------------------------------------------------------------------------------- -- تكوين صندوق الرسالة (Message box) -- -- -- -- يحتوي هذا الموديول على بيانات التكوين لـ [[وحدة:Message box]]. -- --------------------------------------------------------------------------------- local cfg = {} -- إعدادات صناديق المقالات والكتب (ambox) cfg.ambox = { types = { speedy = { class = 'ambox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ambox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ambox-content', image = 'Ambox important.svg' }, style = { class = 'ambox-style', image = 'Edit-clear.svg' }, move = { class = 'ambox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ambox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'ambox-notice', image = 'Information icon4.svg' } }, default = 'notice', allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'}, allowSmall = true, smallParam = 'left', smallClass = 'mbox-small-left', substCheck = true, classes = {'metadata', 'ambox'}, imageEmptyCell = true, imageCheckBlank = true, imageRightNone = true, sectionDefault = 'كتاب', allowMainspaceCategories = true, } -- إعدادات صناديق التصنيفات (cmbox) cfg.cmbox = { types = { speedy = { class = 'cmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'cmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'cmbox-content', image = 'Ambox important.svg' }, style = { class = 'cmbox-style', image = 'Edit-clear.svg' }, move = { class = 'cmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'cmbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'cmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'cmbox'}, imageEmptyCell = true } -- إعدادات الصناديق العامة ونطاقات أخرى (ombox) cfg.ombox = { types = { speedy = { class = 'ombox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ombox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ombox-content', image = 'Ambox important.svg' }, style = { class = 'ombox-style', image = 'Edit-clear.svg' }, move = { class = 'ombox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ombox-protection', image = 'Imbox protection.png' }, notice = { class = 'ombox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'ombox'}, imageEmptyCell = true, imageRightNone = true } -- الأسماء البديلة للأنواع (لغات أخرى أو مرادفات) -- هنا قمنا بإضافة الكلمات العربية لتتعرف عليها الوحدة تلقائياً cfg.typeAliases = { ['سريع'] = 'speedy', ['حذف'] = 'delete', ['محتوى'] = 'content', ['أسلوب'] = 'style', ['تنسيق'] = 'style', ['ملاحظة'] = 'notice', ['نقل'] = 'move', ['حماية'] = 'protection' } return cfg 66g197oyd760lm69qou5laubgw99fer البرمجة بلغة جافا/أساسيات جافا 0 57829 270727 2026-10-11T20:38:35Z SanBonne 34889 أنشأ الصفحة ب'{{عنوان سرية|البرمجة بلغة جافا/أساسيات جافا}} تُعد '''أساسيات جافا ''' حجر الأساس لفهم كيفية بناء وتطوير البرامج والتطبيقات المكتوبة بهذه اللغة. بعد الإلمام بقواعد التركيب النحوي (Syntax)، يجب فهم المفاهيم الجوهرية التي تبني المنطق البرمجي داخل لغة جافا.' 270727 wikitext text/x-wiki {{عنوان سرية|البرمجة بلغة جافا/أساسيات جافا}} تُعد '''أساسيات جافا ''' حجر الأساس لفهم كيفية بناء وتطوير البرامج والتطبيقات المكتوبة بهذه اللغة. بعد الإلمام بقواعد التركيب النحوي (Syntax)، يجب فهم المفاهيم الجوهرية التي تبني المنطق البرمجي داخل لغة جافا. p6pffen4e41gxewok16a4sb33rx2d2n 270728 270727 2026-10-11T20:39:14Z SanBonne 34889 270728 wikitext text/x-wiki تُعد '''أساسيات جافا ''' حجر الأساس لفهم كيفية بناء وتطوير البرامج والتطبيقات المكتوبة بهذه اللغة. بعد الإلمام بقواعد التركيب النحوي (Syntax)، يجب فهم المفاهيم الجوهرية التي تبني المنطق البرمجي داخل لغة جافا. == المعاملات والعمليات الحسابية والمنطقية == تدعم لغة جافا مجموعة واسعة من المعاملات (Operators) لمعالجة البيانات وتنفيذ العمليات المختلفة: === العمليات الحسابية (Arithmetic Operators) === تُستخدم لإجراء العمليات الرياضية الأساسية: * <code>+</code> : الجمع * <code>-</code> : الطرح * <code>*</code> : الضرب * <code>/</code> : القسمة * <code>%</code> : باقي القسمة (Modulo) === المعاملات العلائقية والمقارنة (Relational Operators) === تُستخدم لمقارنة القيم وإرجاع نتيجة منطقية (<code>true</code> أو <code>false</code>): * <code>==</code> : مساوٍ ل: * <code>!=</code> : لا يساوي * <code>></code> ، <code><</code> : أكبر من، أصغر من * <code>>=</code> ، <code><=</code> : أكبر من أو يساوي، أصغر من أو يساوي === المعاملات المنطقية (Logical Operators) === تُستخدم لربط الشروط المنطقية المتعددة: * <code>&&</code> : (AND) الشرط المشترك (يتحقق إذا كانت جميع الشروط صحيحة). * <code>||</code> : (OR) الشرط البديل (يتحقق إذا تحقق شرط واحد على الأقل). * <code>!</code> : (NOT) العكس المنطقي. 69lfpt36ro15dgpj1h4hcv8d2zd3v2a 270729 270728 2026-10-11T20:39:36Z SanBonne 34889 /* المعاملات والعمليات الحسابية والمنطقية */ 270729 wikitext text/x-wiki تُعد '''أساسيات جافا ''' حجر الأساس لفهم كيفية بناء وتطوير البرامج والتطبيقات المكتوبة بهذه اللغة. بعد الإلمام بقواعد التركيب النحوي (Syntax)، يجب فهم المفاهيم الجوهرية التي تبني المنطق البرمجي داخل لغة جافا. == المعاملات والعمليات الحسابية والمنطقية == تدعم لغة جافا مجموعة واسعة من المعاملات (Operators) لمعالجة البيانات وتنفيذ العمليات المختلفة: === العمليات الحسابية (Arithmetic Operators) === تُستخدم لإجراء العمليات الرياضية الأساسية: * <code>+</code> : الجمع * <code>-</code> : الطرح * <code>*</code> : الضرب * <code>/</code> : القسمة * <code>%</code> : باقي القسمة (Modulo) === المعاملات العلائقية والمقارنة (Relational Operators) === تُستخدم لمقارنة القيم وإرجاع نتيجة منطقية (<code>true</code> أو <code>false</code>): * <code>==</code> : مساوٍ ل: * <code>!=</code> : لا يساوي * <code>></code> ، <code><</code> : أكبر من، أصغر من * <code>>=</code> ، <code><=</code> : أكبر من أو يساوي، أصغر من أو يساوي === المعاملات المنطقية (Logical Operators) === تُستخدم لربط الشروط المنطقية المتعددة: * <code>&&</code> : (AND) الشرط المشترك (يتحقق إذا كانت جميع الشروط صحيحة). * <code>||</code> : (OR) الشرط البديل (يتحقق إذا تحقق شرط واحد على الأقل). * <code>!</code> : (NOT) العكس المنطقي. == نطاق المتغيرات (Variable Scope) === يحدد نطاق المتغير (Scope) الجانب أو الكتلة البرمجية التي يمكن فيها الوصول إلى المتغير واستخدامه: * '''متغيرات الفئة (Class Variables / Fields):''' تُعرف داخل الفئة وخارج الدوال، وتكون متاحة لكافة أساليب الفئة. * '''المتغيرات المحلية (Local Variables):''' تُعرف داخل الدوال أو الحلقات التكرارية، وتنتهي صلاحيتها بمجرد الخروج من تلك الكتلة البرمجية. == المصفوفات (Arrays) === المصفوفة هي بنية بيانات مخصصة لتخزين مجموعة من العناصر (ذات نوع واحد) تحت اسم متغير واحد وبأحجام ثابتة. <syntaxhighlight lang="java"> // إعلان وإنشاء مصفوفة تحتوي على 5 أعداد صحيحة int[] scores = new int[5]; // تعبئة المصفوفة بالقيم مباشرة String[] days = {"السبت", "الأحد", "الإثنين", "الثلاثاء", "الأربعاء"}; // الوصول إلى عنصر داخل المصفوفة عبر الفهرس (Index) System.out.println(days[0]); // يطبع "السبت" </syntaxhighlight> iujqhrnp20yflfidsumus20pnjtaawo 270730 270729 2026-10-11T20:39:49Z SanBonne 34889 /* المصفوفات (Arrays) = */ 270730 wikitext text/x-wiki تُعد '''أساسيات جافا ''' حجر الأساس لفهم كيفية بناء وتطوير البرامج والتطبيقات المكتوبة بهذه اللغة. بعد الإلمام بقواعد التركيب النحوي (Syntax)، يجب فهم المفاهيم الجوهرية التي تبني المنطق البرمجي داخل لغة جافا. == المعاملات والعمليات الحسابية والمنطقية == تدعم لغة جافا مجموعة واسعة من المعاملات (Operators) لمعالجة البيانات وتنفيذ العمليات المختلفة: === العمليات الحسابية (Arithmetic Operators) === تُستخدم لإجراء العمليات الرياضية الأساسية: * <code>+</code> : الجمع * <code>-</code> : الطرح * <code>*</code> : الضرب * <code>/</code> : القسمة * <code>%</code> : باقي القسمة (Modulo) === المعاملات العلائقية والمقارنة (Relational Operators) === تُستخدم لمقارنة القيم وإرجاع نتيجة منطقية (<code>true</code> أو <code>false</code>): * <code>==</code> : مساوٍ ل: * <code>!=</code> : لا يساوي * <code>></code> ، <code><</code> : أكبر من، أصغر من * <code>>=</code> ، <code><=</code> : أكبر من أو يساوي، أصغر من أو يساوي === المعاملات المنطقية (Logical Operators) === تُستخدم لربط الشروط المنطقية المتعددة: * <code>&&</code> : (AND) الشرط المشترك (يتحقق إذا كانت جميع الشروط صحيحة). * <code>||</code> : (OR) الشرط البديل (يتحقق إذا تحقق شرط واحد على الأقل). * <code>!</code> : (NOT) العكس المنطقي. == نطاق المتغيرات (Variable Scope) === يحدد نطاق المتغير (Scope) الجانب أو الكتلة البرمجية التي يمكن فيها الوصول إلى المتغير واستخدامه: * '''متغيرات الفئة (Class Variables / Fields):''' تُعرف داخل الفئة وخارج الدوال، وتكون متاحة لكافة أساليب الفئة. * '''المتغيرات المحلية (Local Variables):''' تُعرف داخل الدوال أو الحلقات التكرارية، وتنتهي صلاحيتها بمجرد الخروج من تلك الكتلة البرمجية. === المصفوفات (Arrays) === المصفوفة هي بنية بيانات مخصصة لتخزين مجموعة من العناصر (ذات نوع واحد) تحت اسم متغير واحد وبأحجام ثابتة. <syntaxhighlight lang="java"> // إعلان وإنشاء مصفوفة تحتوي على 5 أعداد صحيحة int[] scores = new int[5]; // تعبئة المصفوفة بالقيم مباشرة String[] days = {"السبت", "الأحد", "الإثنين", "الثلاثاء", "الأربعاء"}; // الوصول إلى عنصر داخل المصفوفة عبر الفهرس (Index) System.out.println(days[0]); // يطبع "السبت" </syntaxhighlight> q0qs8fsb51kmlcpz4b5vsdeq1c8bbd8 270731 270730 2026-10-11T20:39:56Z SanBonne 34889 /* نطاق المتغيرات (Variable Scope) = */ 270731 wikitext text/x-wiki تُعد '''أساسيات جافا ''' حجر الأساس لفهم كيفية بناء وتطوير البرامج والتطبيقات المكتوبة بهذه اللغة. بعد الإلمام بقواعد التركيب النحوي (Syntax)، يجب فهم المفاهيم الجوهرية التي تبني المنطق البرمجي داخل لغة جافا. == المعاملات والعمليات الحسابية والمنطقية == تدعم لغة جافا مجموعة واسعة من المعاملات (Operators) لمعالجة البيانات وتنفيذ العمليات المختلفة: === العمليات الحسابية (Arithmetic Operators) === تُستخدم لإجراء العمليات الرياضية الأساسية: * <code>+</code> : الجمع * <code>-</code> : الطرح * <code>*</code> : الضرب * <code>/</code> : القسمة * <code>%</code> : باقي القسمة (Modulo) === المعاملات العلائقية والمقارنة (Relational Operators) === تُستخدم لمقارنة القيم وإرجاع نتيجة منطقية (<code>true</code> أو <code>false</code>): * <code>==</code> : مساوٍ ل: * <code>!=</code> : لا يساوي * <code>></code> ، <code><</code> : أكبر من، أصغر من * <code>>=</code> ، <code><=</code> : أكبر من أو يساوي، أصغر من أو يساوي === المعاملات المنطقية (Logical Operators) === تُستخدم لربط الشروط المنطقية المتعددة: * <code>&&</code> : (AND) الشرط المشترك (يتحقق إذا كانت جميع الشروط صحيحة). * <code>||</code> : (OR) الشرط البديل (يتحقق إذا تحقق شرط واحد على الأقل). * <code>!</code> : (NOT) العكس المنطقي. == نطاق المتغيرات (Variable Scope) == يحدد نطاق المتغير (Scope) الجانب أو الكتلة البرمجية التي يمكن فيها الوصول إلى المتغير واستخدامه: * '''متغيرات الفئة (Class Variables / Fields):''' تُعرف داخل الفئة وخارج الدوال، وتكون متاحة لكافة أساليب الفئة. * '''المتغيرات المحلية (Local Variables):''' تُعرف داخل الدوال أو الحلقات التكرارية، وتنتهي صلاحيتها بمجرد الخروج من تلك الكتلة البرمجية. === المصفوفات (Arrays) === المصفوفة هي بنية بيانات مخصصة لتخزين مجموعة من العناصر (ذات نوع واحد) تحت اسم متغير واحد وبأحجام ثابتة. <syntaxhighlight lang="java"> // إعلان وإنشاء مصفوفة تحتوي على 5 أعداد صحيحة int[] scores = new int[5]; // تعبئة المصفوفة بالقيم مباشرة String[] days = {"السبت", "الأحد", "الإثنين", "الثلاثاء", "الأربعاء"}; // الوصول إلى عنصر داخل المصفوفة عبر الفهرس (Index) System.out.println(days[0]); // يطبع "السبت" </syntaxhighlight> ityhc13x9zzperxddy6k9vquirsrukh 270732 270731 2026-10-11T20:40:07Z SanBonne 34889 /* نطاق المتغيرات (Variable Scope) */ 270732 wikitext text/x-wiki تُعد '''أساسيات جافا ''' حجر الأساس لفهم كيفية بناء وتطوير البرامج والتطبيقات المكتوبة بهذه اللغة. بعد الإلمام بقواعد التركيب النحوي (Syntax)، يجب فهم المفاهيم الجوهرية التي تبني المنطق البرمجي داخل لغة جافا. == المعاملات والعمليات الحسابية والمنطقية == تدعم لغة جافا مجموعة واسعة من المعاملات (Operators) لمعالجة البيانات وتنفيذ العمليات المختلفة: === العمليات الحسابية (Arithmetic Operators) === تُستخدم لإجراء العمليات الرياضية الأساسية: * <code>+</code> : الجمع * <code>-</code> : الطرح * <code>*</code> : الضرب * <code>/</code> : القسمة * <code>%</code> : باقي القسمة (Modulo) === المعاملات العلائقية والمقارنة (Relational Operators) === تُستخدم لمقارنة القيم وإرجاع نتيجة منطقية (<code>true</code> أو <code>false</code>): * <code>==</code> : مساوٍ ل: * <code>!=</code> : لا يساوي * <code>></code> ، <code><</code> : أكبر من، أصغر من * <code>>=</code> ، <code><=</code> : أكبر من أو يساوي، أصغر من أو يساوي === المعاملات المنطقية (Logical Operators) === تُستخدم لربط الشروط المنطقية المتعددة: * <code>&&</code> : (AND) الشرط المشترك (يتحقق إذا كانت جميع الشروط صحيحة). * <code>||</code> : (OR) الشرط البديل (يتحقق إذا تحقق شرط واحد على الأقل). * <code>!</code> : (NOT) العكس المنطقي. == نطاق المتغيرات (Variable Scope) == يحدد نطاق المتغير (Scope) الجانب أو الكتلة البرمجية التي يمكن فيها الوصول إلى المتغير واستخدامه: * '''متغيرات الفئة (Class Variables / Fields):''' تُعرف داخل الفئة وخارج الدوال، وتكون متاحة لكافة أساليب الفئة. * '''المتغيرات المحلية (Local Variables):''' تُعرف داخل الدوال أو الحلقات التكرارية، وتنتهي صلاحيتها بمجرد الخروج من تلك الكتلة البرمجية. === المصفوفات (Arrays) === المصفوفة هي بنية بيانات مخصصة لتخزين مجموعة من العناصر (ذات نوع واحد) تحت اسم متغير واحد وبأحجام ثابتة. <syntaxhighlight lang="java"> // إعلان وإنشاء مصفوفة تحتوي على 5 أعداد صحيحة int[] scores = new int[5]; // تعبئة المصفوفة بالقيم مباشرة String[] days = {"السبت", "الأحد", "الإثنين", "الثلاثاء", "الأربعاء"}; // الوصول إلى عنصر داخل المصفوفة عبر الفهرس (Index) System.out.println(days[0]); // يطبع "السبت" </syntaxhighlight> == إدخال وإخراج البيانات (I/O) === تتفاعل برامج جافا مع المستخدمين إما عبر سطر الأوامر (Console) أو واجهات المستخدم الرسومية. لقراءة المدخلات من لوحة المفاتيح، يُستخدم عادةً الصنف <code>Scanner</code>: <syntaxhighlight lang="java"> import java.util.Scanner; public class InputExample { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("أدخل اسمك: "); String name = scanner.nextLine(); System.out.println("أهلاً بك، " + name); } } </syntaxhighlight> == انظر أيضاً == * [[البرمجة بلغة جافا/التركيب النحوي|التركيب النحوي في جافا]] * [[البرمجة بلغة جافا/البرمجة كائنية التوجه|مبادئ البرمجة كائنية التوجه (OOP)]] * [[البرمجة بلغة جافا/الاستثناءات|معالجة الاستثناءات والأخطاء]] [[تصنيف:البرمجة بلغة جافا]] [[تصنيف:لغات البرمجة]] n4ldd59zw1wmyuarvf9erd3vlsvqiaa برمجة جافا/التركيب النحوي 0 57830 270734 2026-10-11T20:40:58Z SanBonne 34889 نقلت SanBonne صفحة [[برمجة جافا/التركيب النحوي]] إلى [[البرمجة بلغة جافا/التركيب النحوي]]: عنوان مكتوب بشكل خاطئ 270734 wikitext text/x-wiki #تحويل [[البرمجة بلغة جافا/التركيب النحوي]] 8y4sssd1wh1n6w1j9s5yq9ugqoyf87k برمجة جافا 0 57831 270736 2026-10-11T20:41:34Z SanBonne 34889 نقلت SanBonne صفحة [[برمجة جافا]] إلى [[البرمجة بلغة جافا]]: عنوان مكتوب بشكل خاطئ 270736 wikitext text/x-wiki #تحويل [[البرمجة بلغة جافا]] 7d3075yqhsirwxwslalih35nyjzz1o5 تصنيف:البرمجة بلغة جافا 14 57832 270737 2026-10-11T20:43:05Z SanBonne 34889 أنشأ الصفحة ب'[[تصنيف:لغات برمجة]]' 270737 wikitext text/x-wiki [[تصنيف:لغات برمجة]] ds59nyaxuxggk7bem8d2ey644ou4bdm قالب:صندوق رسالة كتاب 10 57833 270741 2026-10-12T09:41:30Z SanBonne 34889 أنشأ الصفحة ب'{{#invoke:Message box|bmbox}} <noinclude> {{توثيق}} </noinclude>' 270741 wikitext text/x-wiki {{#invoke:Message box|bmbox}} <noinclude> {{توثيق}} </noinclude> rsn3hva887lgz6efwzrzcyno56tw6ci 270749 270741 2026-10-12T09:51:42Z SanBonne 34889 270749 wikitext text/x-wiki {{#invoke:Message box|bmbox}}<noinclude> {{توثيق}} </noinclude> h18rckekrfibxtw4aqq4hiu7raxdnom 270759 270749 2026-10-12T10:08:47Z SanBonne 34889 270759 wikitext text/x-wiki {{#invoke:Message box|ombox | type = {{{نوع|{{{type|}}}}}} | image = {{{صورة|{{{image|}}}}}} | text = {{{نص|{{{text|}}}}}} | text_small = {{{تفاصيل|{{{text_small|}}}}}} }}<!-- --><noinclude> {{توثيق}} </noinclude> tu80vxwzj203ymduk260cli1hb454wy 270760 270759 2026-10-12T10:16:24Z SanBonne 34889 270760 wikitext text/x-wiki {{#invoke:Message box|ombox | type = {{#switch: {{{نوع|{{{type|}}}}}} | حذف سريع = speedy | حذف = delete | محتوى = content | أسلوب | تنسيق = style | ملاحظة = notice | نقل = move | حماية = protection | #default = {{{نوع|{{{type|}}}}}} }} | image = {{{صورة|{{{image|}}}}}} | text = {{{نص|{{{text|}}}}}} | text_small = {{{تفاصيل|{{{text_small|}}}}}} }}<!-- --><noinclude> {{توثيق}} </noinclude> i9q88wwbvpj17hc819sww8vl31eks4i قالب:شرح قالب 10 57834 270745 2026-10-12T09:45:27Z SanBonne 34889 تحويل إلى [[قالب:توثيق]] 270745 wikitext text/x-wiki #تحويل [[قالب:توثيق]] 33iidm9x450o81qvqqwg4mw74u676mb قالب:صندوق رسالة كتاب/شرح 10 57836 270748 2026-10-12T09:51:28Z SanBonne 34889 أنشأ الصفحة ب'هذا القالب هو صندوق رسائل مخصص لنطاق "كتاب:" في ويكي الكتب، ويعتمد برمجياً على [[وحدة:Message_box]]. == الاستخدام == انسخ الكود التالي وقم بتعبئة الحقول المطلوبة: <pre> {{صندوق رسالة كتاب | نوع = <!-- speedy، delete، content، style، notice، move، protection --> | صورة = <!-- استبدل بصورة مخصصة أو اترك...' 270748 wikitext text/x-wiki هذا القالب هو صندوق رسائل مخصص لنطاق "كتاب:" في ويكي الكتب، ويعتمد برمجياً على [[وحدة:Message_box]]. == الاستخدام == انسخ الكود التالي وقم بتعبئة الحقول المطلوبة: <pre> {{صندوق رسالة كتاب | نوع = <!-- speedy، delete، content، style، notice، move، protection --> | صورة = <!-- استبدل بصورة مخصصة أو اتركه فارغاً للصورة الافتراضية للنوع --> | نص = <!-- النص الرئيسي للرسالة --> | تفاصيل = <!-- نص إضافي أو تفصيلي يظهر بخط أصغر --> }} </pre> == المعلمات == * '''نوع''' أو '''type''': يحدد لون الشريط الجانبي والصورة الافتراضية (مثل: notice للملاحظات، delete للحذف، protection للحماية). * '''صورة''' أو '''image''': لإضافة صورة مخصصة (اكتب اسم الملف مباشرة مثل: Example.png). لمنع ظهور الصورة استخدم none. * '''نص''' أو '''text''': الرسالة الأساسية للصندوق. * '''تفاصيل''' أو '''text_small''': نصوص إضافية أو شروحات مساعدة. == طالع أيضاً == * [[وحدة:Message box/configuration]] - لإدارة وتعديل الأنواع والألوان الافتراضية. <includeonly> [[تصنيف:قوالب رسائل كتب]] </includeonly> 62lpe2ucxomsawv7787bhy4yigjxjoj قالب:رك 10 57837 270754 2026-10-12T09:56:05Z SanBonne 34889 تحويل إلى [[قالب:صندوق رسالة كتاب]] 270754 wikitext text/x-wiki #تحويل [[قالب:صندوق رسالة كتاب]] t8pfa5otfi8suedpi44g1vgop0ixcb1 قالب:صندوق رك 10 57838 270755 2026-10-12T09:56:24Z SanBonne 34889 تحويل إلى [[قالب:صندوق رسالة كتاب]] 270755 wikitext text/x-wiki #تحويل [[قالب:صندوق رسالة كتاب]] t8pfa5otfi8suedpi44g1vgop0ixcb1 وحدة:Message box/ombox.css 828 57839 270758 2026-10-12T10:04:47Z SanBonne 34889 أنشأ الصفحة ب'/* {{pp|small=y}} */ .ombox { margin: 4px 0; border-collapse: collapse; border: 1px solid #a2a9b1; /* Default "notice" gray */ background-color: var(--background-color-neutral-subtle, #f8f9fa); box-sizing: border-box; color: var(--color-base, #202122); } /* For the "small=yes" option. */ .ombox.mbox-small { font-size: 88%; line-height: 1.25em; } .ombox-speedy { border: 2px solid #b32424; /* Red */ background-color: #fee7e6; /* Pink */ } .om...' 270758 sanitized-css text/css /* {{pp|small=y}} */ .ombox { margin: 4px 0; border-collapse: collapse; border: 1px solid #a2a9b1; /* Default "notice" gray */ background-color: var(--background-color-neutral-subtle, #f8f9fa); box-sizing: border-box; color: var(--color-base, #202122); } /* For the "small=yes" option. */ .ombox.mbox-small { font-size: 88%; line-height: 1.25em; } .ombox-speedy { border: 2px solid #b32424; /* Red */ background-color: #fee7e6; /* Pink */ } .ombox-delete { border: 2px solid #b32424; /* Red */ } .ombox-content { border: 1px solid #f28500; /* Orange */ } .ombox-style { border: 1px solid #fc3; /* Yellow */ } .ombox-move { border: 1px solid #9932cc; /* Purple */ } .ombox-protection { border: 2px solid #a2a9b1; /* Gray-gold */ } .ombox .mbox-text { border: none; /* @noflip */ padding: 0.25em 0.9em; width: 100%; } .ombox .mbox-image { border: none; /* @noflip */ padding: 2px 0 2px 0.9em; text-align: center; } .ombox .mbox-imageright { border: none; /* @noflip */ padding: 2px 0.9em 2px 0; text-align: center; } /* An empty narrow cell */ .ombox .mbox-empty-cell { border: none; padding: 0; width: 1px; } .ombox .mbox-invalid-type { text-align: center; } @media (min-width: 720px) { .ombox { margin: 4px 10%; } .ombox.mbox-small { /* @noflip */ clear: right; /* @noflip */ float: right; /* @noflip */ margin: 4px 0 4px 1em; width: 238px; } } /** T367463 */ body.skin--responsive table.ombox img { max-width: none !important; } @media screen { html.skin-theme-clientpref-night .ombox-speedy { background-color: #310402; /* Dark red, same hue/saturation as light */ } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .ombox-speedy { background-color: #310402; /* Dark red, same hue/saturation as light */ } } aknh3fw7498ygg9b1o85bvfqn56r48n