What is the difference between Argument and Parameter in Java? ما الفرق بين المعلمات والمتحولات في جافا

 What is the difference between Argument and Parameter in Java? ما الفرق بين المعلمات والمتحولات في جافا

What is the difference between Argument and Parameter in Java? ما الفرق بين المعلمات والمحولات في جافا
في الصورة أعلاه حيث argument value وهي قيمة المحولة، اما formal Parameters في المعلمات او الوسيطات
الصورة من موقع 
https://www.scientecheasy.com/2020/06/java-arguments-parameter.html/


ما هي المتحولات او المحولات في جافا What is  Arguments in Java 

ما ينطبق على لغة جافا في المحولات نفس المفهوم ينطبق على باقي اللغات، فاذان ماذا نعني بالمحولات في جافا Arguments. 

المحولات في Java هي القيمة الفعلية التي يتم تمريرها إلى الدالة عند استدعاء الدالة.

 عندما يتم استدعاء أي دالة معينة أثناء تنفيذ البرنامج ، فهناك بعض القيم التي يتم تمريرها لاستدعاء تلك الدالة المعينة.  هذه القيم تسمى المحولات او الوسيطات والمعلمات الفعلية actually Parameter .

 تحل قيم المحولات التي تم تمريرها محل تلك المعلمات التي تم استخدامها أثناء تعريف الدالة ثم يتم تنفيذ الدالة بهذه القيم.

 يجب أن يتطابق نوع قيم المحولات التي تم تمريرها مع النوع المحدد للمعامل المقابل في تعريف الدالة.  في بعض الأحيان ، تسمى المحولة أيضًا المعلمة الفعلية.
 فمثلا: اذا كانت الدالة المعلمة لها أثناء التعريف من نوع عدد صحيح فإن أيضا القيمة المحولة في الدالة يجب أن تكون عدد صحيح فلا يجوز تمرير قيم من خلال المحولات لا تكون من نفس نوع المعلمات او الوسيطات التي تعرف ب formal Parameters. 
مثلا على محولات في جافا. 
add(5,7);
sum(35, 47);

القيمتان 5 و 7 هي المحولات التي سيتم من خلالها استدعاء الدالة .

تذكر انه لا توجد محولات arguments بدون وسيطات او معلمات Parameters. 

ما هي الوسيطات او المعلمات او الباراميترات في جافا What is Parameter in Java

كما شرحنا المحولات سابقا وقلنا لاتوجد محولات بدون معلمات او وسيطات ولاتنسى ان المحولات تمسي المعلمات او الوسيطات الفعلية، لأنها تحتوي على قيم فعلية يتم تمثيلها في الذاكرة. أما الوسيطات فهي تسمى الوسيطات التعريفية وهي تعريف للمتغيرات. 
في Java ، المعلمة او الباراميترات  هي اسم متغير من النوع الذي تم التصريح عنه في الدالة .  قائمة المعلمات او الوسيطات محاطة بأقواس.

 تتكون كل معلمة من جزأين: اسم النوع واسم المتغير.  يحدد اسم النوع متبوعًا باسم متغير نوع القيمة التي يمكن تمريرها إلى الدالة عندما يتم استدعاؤها.  غالبًا ما يطلق عليه أيضًا عليها المعلمة الرسمية.

 دائمًا ما تكون المعلمات او الباراميترات المعلنة في توقيع الدالة متغيرات محلية تتلقى القيم عند استدعاء الدالة.

أمثلة على معلمات او سيطات باراميتر ومحولات


 دالة تجمع رقمين من خلال تمرير معلمتين من نوع رقم صحيح

public int add(int a, int b)

     {

           return (a+b);

      }                 


تحتوي الدالة add () على معلمتين ، مسميتين a و b مع عدد صحيح من نوع البيانات.  تقوم بجمع القيم التي تم تمريرها في المحولات وإرجاع النتيجة إلى منشئ او نشيد الدالة. تذكر عند استدعاء الدالة مع تمرير القيم تسمى بالمحولات 

 دالة تجمع 

    void sum(int x, int y)            

دالة sum () لها معلمتان x و y.  أثناء تمرير قيم الوسيطة إلى المعلمات ، يكون ترتيب المعلمات وعددها مهمًا للغاية.  يجب أن تكون هذه بنفس ترتيب المعلمات الخاصة بها المعلنة في إعلان الدالة.

 دالة تمرر متغير من نوع مصفوفة

public static void main(String[ ] args )

    {

         . . . . . . .

    }                

في الدالة main () ، تكون args معلمة مصفوفة سلسلة
هنا تكون المحولات من نوع مصفوفة فلا يمكن تمرير او استخدام محول عددي او كائني.

 دالة لا تحتوي على اي معلمات او وسيطات

 void sub();     

هنا ، لا تحتوي الدالة () الفرعية على اي  معلمة.  إذا كانت الدالة لا تحتوي على معلمات ، فسيتم استخدام زوج فارغ من الأقواس فقط.
كما ذكرت اذا كانت هناك محولات فهناك باراميترات، بما انه في المثال السابق لا توجد باراميترات فإنه لا توجد محولات. 

أنواع المعلمات او الوسيطات 

 يمكننا استخدام أي نوع من أنواع البيانات مثل أنواع البيانات الأولية بما في ذلك متغيرات int و float و double و char و String و object Reference للمعلمة الخاصة بالدالة والمنشئ لو المشيد. 

 لا يوجد حد معياري لتحديد عدد المعلمات في تعريف الدالة ولكن يجب أن تحدد عدد المعلمات تقريبًا من 6 إلى 7 وأي شيء آخر سيكون له تأثير سلبي على سهولة قراءة الكود الخاص بك.
دعنا نفهم المحولات والمعاملات باستخدام مثال للبرنامج والرسم التخطيطي ذي الصلة.
 كود مصدر البرنامج 1:

مثال يشرح مفهوم المحولات والوسيطات في جافا 

package methodCallingExample; 

public class Sum 

   public static void main(String[] args) 

   { 

     Sum obj = new Sum(); 

     int x = obj.sum(20, 10); 

     System.out.println(x); 

   } 

int sum (int a, int b)

 { 

    int s = a + b; 

    return s; 

 } 

}                

مخرجات مثال على مفهوم الوسيطات والمحولات في جافا 

 30  


في البرنامج والرسم البياني السابق ، يمكنك أن ترى أن دالة sum () لها معلمتان ، a و b ، وكلاهما من النوع int.

 لذلك ، يجب أن تكون قيمتا الوسيطتين دائمًا من النوع int.  نظرًا لأن هذه الدالة لم يتم تعريفها على أنها ثابتة ، فيمكننا تسميتها عن دالة إنشاء كائن من الفئة.

 عندما نستدعي دالة sum () من دالة أخرى تسمى main () ، يتم استبدال المعلمات المحددة في توقيع الدالة بقيم وسيطات تمرير ومن ثم يتم تنفيذ الدالة بهذه القيم.

 توضح الدالة sum () المتغير s ، والذي يوجد فقط داخل جسم الدالة.  في كل مرة يتم إنشاء هذا المتغير  عند تنفيذ الدالة وسيتم إتلافه عند انتهاء تنفيذ الدالة.

 تعتبر جميع المتغيرات التي تحددها داخل جسم الدالة متغيرات محلية.  المتغيرات المعلنة داخل جسم الدالة تسمى المتغيرات المحلية.

 الفرق بين المحولات والمعلمة في جافا

 أحيانًا يكون الاختلاف بين المعلمة والمحولات مربكًا في Java لأن العديد من المبرمجين غالبًا ما يستخدمونها بشكل تبادلي ، ولكن كلاهما لهما معاني مختلفة.

 لذلك ، دعونا نرى الفرق الفعلي بينهما.

 1. المعلمة هي متغير في تعريف الدالة بينما المحولات هي قيمة فعلية لهذا المتغير يتم تمريرها إلى معامل الدالة.

 2. تسمى المعلمة أيضًا المعلمة الرسمية بينما تسمى المحولات أيضًا المعلمة الفعلية.

 3. أثناء وقت الاستدعاء ، يتم دائمًا تعيين كل محول للمعامل في تعريف الدالة بينما المعلمات هي متغيرات محلية يتم تعيينها بواسطة قيمة المحولات عند استدعاء الدالة.

اقرأ أيضا في دروس تعلم عن جافا 

  1.   ماهي المشيدات في جافا ولماذا تستخدم مع أمثلة؟ 
  2. What are the advantages and disadvantages of Java programming language cons and pros? ما هي مزايا وعيوب لغة برمجة جافا  سلبياتها وإيجابياتها ؟
  3. How is C++ different from Java? ما الفرق بين لغة جافا وسي بلص بلص؟ مقارنة
  4.   First Java Program | Hello World Example أول برنامج جافا | مثال مرحبا العالم
  5.   How a Java program is compiled and run?كيف يتم تجميع وتشغيل برنامج جافا؟
  6.  How to set path in Java? كيف تغير مسار الدليل او المجلد في مكتبة جافا
  7.   What are the Difference between JDK, JRE, and JVM? ما هو الفرق بين JDK و JRE و JVM
  8.   What is JVM (Java Virtual Machine)? ما هو JVM (آلة جافا الافتراضية)؟
  9. What is Java Development Kit and its purpose?ما هي مجموعة تطوير جافا والغرض منها؟ jdk
  10. What is Java appletما هو تطبيق جافا ابلايت ؟او التصبيق المصغر
  11.   ماهي أنواع المتغيرات في جافا What are Java Variable Types 
  12.   ما هي أنواع البيانات الأساسية في جافا Java Basic What are  Datatypes#
  13.  What is Unicode with exam وهple? Java? ما هو الترميز الموحد مع المثال؟  جافا؟
  14.  ماهي عوامل التشغيل او المشغلات  الأساسية في جافا Java Basic What are the Operators#
  15.  What are reserved keywords in Java? ما هي الكلمات الرئيسية المحجوزة في جافا؟
  16.  الجمل الشرطية ما هي أنواع صنع القرار في برمجة جافا Java Decision Making#
  17.  ما هي الجملة الشرطية اذا في جافا if statement in java
  18.  ما هي الجملة الشرطية  اذا  اذا كان   في جافا if else statement in java
  19.   ما هي الجملة الشرطية  التبديل في جافا switch statement in java
  20.   ما هي الجمل الشرطية المتداخلة او المركبة في جافا nested if statement in java
  21.   ما هي جمل التكرار أو الحلقة الدوارة في جافا Java Loop Control#
  22.   ماهي حلقة التكرار فور  وفور ايتش في برمجة جافا for loop in java#
  23.  ماهي حلقة التكرار أو الدوارة بينما في جافا while Loop in java 
  24.  What is the while loop in Java? & How do you use it? ما هي حلقة التكرار افعل... بينما في جافا 
  25.  كيفية استخدام جملة الاستمرار والمتابعة في حلقات التكرار والدوارة في جافا Continue statement in java#