John Squirrels
مستوى
San Francisco

طرق جافا

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

ما هي الأساليب في جافا؟

تحدد الأساليب سلوك الكائنات وهي عبارة عن سلسلة من الأوامر التي تسمح لك بإجراء بعض العمليات في البرنامج. في لغات البرمجة الأخرى، غالبًا ما يُشار إلى الأساليب باسم "الوظائف"، وهي محقة في ذلك. في الواقع، الطريقة هي دالة بالمعنى الرياضي. عادةً ما يتم توفير شيء ما لمدخلات الطريقة (بعض المتغيرات)، وتتم معالجة هذه المتغيرات من خلال سلسلة من الأوامر، ثم تنتج الطريقة نتيجة. من المحتمل أنك قد صادفت طرقًا بالفعل، على الأقل مع public static void main(String[] args) . تبدأ هذه الطريقة عادةً في تنفيذ برنامج Java.

كيفية الإعلان عن الأساليب في جافا؟

يتم إنشاء كافة الأساليب في Java داخل الفئات. ويتم الإعلان عنهم على النحو التالي:
accessSpecifier ReturnType name (parameter list) {
//method body
}
على سبيل المثال:
public int addTwoNumbers (int a, int b){

//method body
return}
عندما يكون public محدد وصول، فإن int هو نوع من المتغير الذي تقوم الطريقة بإرجاعه، و addTwoNumbers هو اسم الطريقة، و a و b هما معلمات الطريقة. دعونا نلقي نظرة بمزيد من التفاصيل. يتم استخدام محدد الوصول لتحديد نوع الوصول للطريقة. يمكن أن تكون على النحو التالي:
  • عام : الوصول إلى الطريقة متاح من أي فئة.

  • خاص : الوصول متاح داخل الفصل الذي تم تعريفه فيه.

  • محمي : الوصول متاح فقط داخل الحزمة أو الفئات الفرعية الأخرى في حزمة أخرى.

  • الافتراضي : الوصول متاح من الحزمة التي تم الإعلان عنها. في هذه الحالة، لا يتم كتابة كلمة "الافتراضي".

يحدد نوع الإرجاع النوع الذي ترجعه هذه الطريقة. في المثال أعلاه، int هو نوع الإرجاع. إذا لم تُرجع الطريقة شيئًا، فسيكون نوع الإرجاع باطلاً:
public void printSomething (String myString) {}
اسم الطريقة هو اسم فريد لطريقتك. سنشرح بعض قواعد تسمية Java لاحقًا في هذه المقالة. في الطرق المذكورة أعلاه الأسماء هي addTwoNumbers و printSomething . قائمة المعلمات هي قائمة الوسائط (نوع البيانات واسم المتغير) التي تأخذها الطريقة. في المثال الأول أعلاه، "int a, int b" عبارة عن معلمات، وفي المثال الثاني، String myString عبارة عن وسيطة. يمكنك أيضًا ترك هذا الحقل فارغًا إذا كنت لا تريد استخدام أي معلمات في الطريقة.

مثال على معلمات الطريقة

public void printSomething (String myParameter1, int myParameter2) {}
فيما يلي متغيرين، myParameter1 و myParameter2 . إنها معلمات الأسلوب. هي مجموعة التعليمات المحاطة بأقواس متعرجة والتي ستنفذها الطريقة. إذا لم يكن نوع الإرجاع للطريقة فارغًا، فيجب أن تكون الكلمة الأساسية للإرجاع موجودة في نص الطريقة. return متبوعًا بالوسيطة التي ترجعها هذه الطريقة. لذلك، لإنشاء طريقة، تحتاج إلى تحديد اسمها مع الأقواس، وبين قوسين، إذا لزم الأمر، المتغيرات التي ستعمل عليها الطريقة. قبل أن يكون اسم الطريقة هو محدد الوصول ونوع المتغير الذي ترجعه الطريقة، أو يكون باطلاً إذا لم تُرجع الطريقة شيئًا. في الأقواس المتعرجة، نكتب الطريقة الفعلية، وهي سلسلة من التعليمات التي تعمل غالبًا مع وسيطات الطريقة. فيما يلي مثال لطريقة تبحث عن أكبر رقم في مصفوفة وتقوم بإعادته.
public int findBiggest(int[] numbers) {
   int max;
   max = numbers[0];
   for (int i = 1; i < numbers.length; i++) {
       if (max < numbers[i]) {
           max = numbers[i];
       }
   }
   return max;
}

كيفية تسمية الطريقة؟

لا توجد قواعد صارمة لتسمية الأساليب، ولكن هناك إرشادات يجب عليك اتباعها إذا كنت تخطط للتطوير بشكل احترافي في Java. غالبًا ما تكون أسماء الطرق أفعالًا، مكتوبة بأحرف مختلطة، تبدأ بحرف صغير ولكن باستخدام حرف كبير لكل كلمة لاحقة (camelCase). وهنا بعض الأمثلة:
int addTwoNumbers (int a, int b)
void run()

كيفية استدعاء الأسلوب

لاستدعاء طريقة ما، يكفي كتابة اسمها وتعيين المتغيرات المقابلة إذا كانت موجودة في الإعلان. لنستدعي الطريقة findBiggest في الطريقة الرئيسية :
public static void main(String[] args) {
  int[] array = new int[] {5, 7, -2, 6, 7, 1};
  int max = findBiggest(array);
   System.out.println("the biggest number in array is: " + max);
  }
مخرجات هذا البرنامج هي :
أكبر رقم في المصفوفة هو: 7

أنواع مختلفة من الأساليب في جافا

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

طرق محددة مسبقا

أساليب المكتبة المحددة مسبقًا أو القياسية مدمجة في Java. بالطبع، يمكن لكل مبرمج استخدامها أو حتى تعديلها محليًا لبرامجه. توجد مكتبة فئة Java في ملف أرشيف Java (على سبيل المثال، *jar) مع جهاز Java الظاهري (JVM) وبيئة تشغيل Java. يمكن أن تكون هذه، على سبيل المثال، أساليب فئة الرياضيات مثل min() أو max() أو abs() . أو طرق معالجة السلسلة مثل concat() . لنقم بإنشاء فصل دراسي بالطريقة الرئيسية واستدعاء طريقتين للمكتبة القياسية.
import static java.lang.Math.max;

public class Test {

    public static void main(String[] args) {
       int a = 5;
       int b = 7;
       int max = max(a,b);
       System.out.println(max);
       String str1 = "I am ";
       String str2 = "here ";
       String str3 = str1.concat(str2);
       System.out.println(str3);


   }

}
لاحظ أنه من أجل استخدام أساليب فئة الرياضيات ، يجب استيرادها في بداية البرنامج. إذا لم يتم ذلك، يمكنك كتابة اسم الفئة قبل اسم الطريقة مفصولاً بنقطة:
int max = Math.max(a,b);

الأساليب المحددة من قبل المستخدم

يتم إنشاء هذه الأساليب من قبل المبرمجين لمتطلبات مشاريعهم. في الواقع، لقد قمنا بالفعل بإنشاء طريقة findBiggest() المعرفة من قبل المستخدم أعلاه. للدمج، لنقم بإنشاء طريقة أخرى لا تُرجع أي شيء ولا تحتوي على معلمات ولكنها تستجيب للاسم المُدخل وتقول مرحبًا (أي الإخراج إلى وحدة التحكم).
import java.util.Scanner;

public class Test {

   public void repeater() {
       Scanner scanner = new Scanner(System.in);
       System.out.println("WHat should I repeat after you?...");
       String s =  scanner.nextLine();
       System.out.println(s);
   }
}

إنشاء طرق ثابتة في جافا

بشكل عام، الأساليب في Java هي أساليب للكائنات. لاستدعاء أسلوب، تحتاج إلى إنشاء مثيل للفئة حيث يتم تعريف هذا الأسلوب. ومع ذلك، هناك أيضًا طرق ثابتة. وهي تختلف عن تلك العادية من حيث أنها مرتبطة بفئة، وليس بكائن. من الخصائص المهمة للطريقة الثابتة أنها يمكنها الوصول فقط إلى المتغيرات/الطرق الثابتة. يتم تعريفها باستخدام الكلمة الأساسية الثابتة . لذلك، في فئة الرياضيات ، تكون جميع طرق العمل مع المتغيرات ثابتة. يمكننا إنشاء شيء مشابه لفئة الرياضيات وجمع العديد من الأساليب الثابتة فيه والتي يمكن استخدامها دون إنشاء مثيل للفئة التي تحتوي عليها. دعونا نسميها أرقام .
import java.util.ArrayList;
import java.util.List;
import java.util.stream.IntStream;


public class Numbers {


   public static int findMax(int left, int right) {
       return (left < right) ? right : left;

   }


   public static boolean isNegative(int number) {
       return number < 0;
   }

   public static long power(long number, int deg) {

       if (deg == 0) {
           number = 1;
           return number;
       } else {
           number = power(number, deg - 1) * number;
           return number;
       }
   }

   public static long abs(long number) {
       return number > 0 ? number : -number;
     }


    public static void main(String[] args) {

       int a = 5;
       int b = 7;
       long c = -7;
       long abs = abs(c);
       System.out.println(abs);
       System.out.println(findMax(a,b));

   }

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

تطبيق أساليب المثيل في كود جافا

يمكن استدعاء أساليب المثيل أو الطرق العادية على مثيل الفئة التي تم تعريف الطريقة فيها.
public class Cat implements Voice{
   String name;
   String breed;
   int year;


   public void talk() {
       System.out.println("meow meow");
   }
}
لاستدعاء طريقة talk() ، تحتاج إلى إنشاء مثيل لفئة Cat :
public class Demo {
   public static void main(String[] args) {
       Cat cat = new Cat ();
       cat.talk();

   }
}
مخرجات البرنامج هنا:
مواء مواء

طرق مجردة في جافا

الأساليب المجردة في Java هي طرق بدون تنفيذ. أي أنها لا تحتوي على تعليمات برمجية عند الإعلان عنها. لا يمكن الإعلان عنها إلا في فئات مجردة وتنفيذها في أحفادهم غير المجردة. لنقم بإنشاء فئة مجردة باستخدام طريقة مجردة واحدة myMethodAdd() .
abstract class DemoAbs {
   abstract void myMethodAdd();
}
لنقم الآن بإنشاء فئة تابعة لهذه الفئة المجردة، DemoAbs . هنا يجب علينا بالضرورة تنفيذ طريقة myMethodAdd() .
public class myClass extends DemoAbs {

   void myMethodAdd() {
       System.out.println("hello");
   }

   public static void main(String[] args) {
       DemoAbs demoAbs = new myClass();
       demoAbs.myMethodAdd();
   }
}

تخصيص الذاكرة لاستدعاءات الأسلوب

هذا موضوع معقد إلى حد ما ويتطلب تحليلاً أكثر دقة. سنذكر هنا فقط الأساسيات للتعرف السطحي على الموضوع. تتكون ذاكرة JVM من مناطق الكومة والمكدس. الكومة هي منطقة من الذاكرة تقوم بتخزين كائنات Java. ذاكرة المكدس هي منطقة مؤقتة من الذاكرة تقوم بتخزين المتغيرات الأولية والمراجع إلى كائنات الطريقة. تحتوي ذاكرة المكدس على قيم قصيرة العمر تعتمد على الطريقة. يعتمد هذا النوع من الذاكرة على مبدأ آخر ما يدخل أولاً يخرج (LIFO). تقوم ذاكرة المكدس بإنشاء كتلة جديدة عندما نستدعي طريقة ما. أنه يحتوي على القيم البدائية المحلية. عندما ننهي إحدى الطرق، تصبح الكتلة التي تم إنشاؤها في ذاكرة المكدس حرة.

خاتمة

في هذه المقالة، تعرفنا على أساسيات إنشاء الأساليب في لغة جافا، وكذلك ما هي الأساليب الموجودة في جافا وكيفية العمل معها. لقد تعلمنا أن الأساليب تحدد سلوك الطبقات. وبدون الأساليب، سيكون من المستحيل على الكائنات أن تتفاعل مع بعضها البعض. لتعزيز ما تعلمته، نقترح عليك مشاهدة درس فيديو من دورة Java الخاصة بنا
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION