بناء او انشاء الدوال في جافا Java Methods
بناء او انشاء الدوال في جافا
Java Methods
بناء او انشاء الدوال في جافا Java Methods
دالة Java عبارة عن مجموعة من العبارات التي تم تجميعها معًا لإجراء عملية. عند استدعاء الدالة System.out.println () ، على سبيل المثال ، ينفذ النظام فعليًا عدة عبارات لعرض رسالة على وحدة التحكم.
الآن سوف تتعلم كيفية إنشاء دوالك الخاصة مع أو بدون قيم الإرجاع ، واستدعاء طريقة مع أو بدون معلمات ، وتطبيق تجريد الطريقة في تصميم البرنامج.
الآن سوف تتعلم كيفية إنشاء دوالك الخاصة مع أو بدون قيم الإرجاع ، واستدعاء طريقة مع أو بدون معلمات ، وتطبيق تجريد الطريقة في تصميم البرنامج.
انشاء دالة Creating Method
النظر في المثال التالي لشرح بناء جملة طريقة -
بناء الجملة
بناء الجملة
public static int methodName(int a, int b) { // body }
هنا,
- محدد الوصول public static − modifier
- نوع القيم المرجعة int − return type
- اسم الدالة methodName − name of the method
- معلمات او وسيطات وهي متغيرات يتم تمريرها خلال الدالة a, معلمات او وسيطات b − formal parameters
- قائمة من المتغيرات الوسبطات int a, int b − list of parameters
يتكون تعريف الطريقة من رأس الدالة ونص الدالة. يظهر الشيء نفسه في بناء الجملة التالي -
بناء الجملة
بناء الجملة
modifier returnType nameOfMethod (Parameter List) { // method body }
يتضمن بناء الجملة الموضح أعلاه -
- modifier −يحدد نوع الوصول للدالة وهو اختياري للاستخدام.
- returnType −قد ترجع الطريقة أو الدالة قيمة.
- nameOfMethod − هذا هو اسم الطريقة أو الدالة. يتكون توقيع الطريقة أو الدالة من اسم الطريقة أو الدالة وقائمة المعلمات المتغيرات الوسيطة.
- Parameter List − قائمة المعلمات ، وهي نوع المعلمات او المتغيرات الوسيطة وطريقة ترتيبها وعددها. هذه اختيارية ، قد تحتوي الطريقة على صفر معلمات.
- method body − يعرّف نص الطريقة أو الدالة ما تقوم به الطريقة او الدالة بالعبارات.
مثال Example
في ما يلي الكود المصدري للطريقة المحددة أعلاه والتي تسمى min (). تأخذ هذه الطريقة معلمتين num1 و num2 وتُرجع الحد الأقصى بين المعلمتين -
/** the snippet returns the minimum between two numbers */ public static int minFunction(int n1, int n2) { int min; if (n1 > n2) min = n2; else min = n1; return min; }
استدعاء الدالة Method Calling
لاستخدام طريقة ، ينبغي أن يطلق عليه. هناك طريقتان تُدعى بهما طريقة ، على سبيل المثال ، تُرجع الطريقة قيمة أو لا تُرجع شيئًا (لا توجد قيمة إرجاع).
عملية استدعاء الأسلوب بسيطة. عندما يستدعي البرنامج طريقة ما ، يتم نقل عنصر التحكم في البرنامج إلى الطريقة التي يتم استدعاءها. هذه الطريقة تسمى ثم إرجاع التحكم إلى المتصل في حالتين ، عندما -
يتم تنفيذ بيان الإرجاع.
يصل إلى طريقة إنهاء إغلاق قوس.
تعتبر أساليب إرجاع الفراغ بمثابة استدعاء إلى بيان. لننظر في مثال -
عملية استدعاء الأسلوب بسيطة. عندما يستدعي البرنامج طريقة ما ، يتم نقل عنصر التحكم في البرنامج إلى الطريقة التي يتم استدعاءها. هذه الطريقة تسمى ثم إرجاع التحكم إلى المتصل في حالتين ، عندما -
يتم تنفيذ بيان الإرجاع.
يصل إلى طريقة إنهاء إغلاق قوس.
تعتبر أساليب إرجاع الفراغ بمثابة استدعاء إلى بيان. لننظر في مثال -
System.out.println("This is ahmedalmahallawi.com!");
int result = sum(6, 9);
مثال
public class ExampleMinNumber { public static void main(String[] args) { int a = 11; int b = 6; int c = minFunction(a, b); System.out.println("Minimum Value = " + c); } /** returns the minimum of two numbers */ public static int minFunction(int n1, int n2) { int min; if (n1 > n2) min = n2; else min = n1; return min; } }
هذا سوف ينتج النتيجة التالية -
المخرجات
المخرجات
Minimum value = 6
الكلمة المحجوزة الخالي The void Keyword
تتيح لنا الكلمة الأساسية الخالية إنشاء طرق لا تُرجع قيمة. هنا ، في المثال التالي ، نفكر في methodoid methodRankPoints. هذه الطريقة هي طريقة او دالة خالية ، والتي لا تُرجع أي قيمة. يجب أن يكون الاتصال بأسلوب الفراغ عبارةً أي نقطة طريقة رتبة (255.7)؛ إنه عبارة Java التي تنتهي بفاصلة منقوطة كما هو موضح في المثال التالي.
مثال
مثال
public class ExampleVoid { public static void main(String[] args) { methodRankPoints(255.7); } public static void methodRankPoints(double points) { if (points >= 202.5) { System.out.println("Rank:A1"); }else if (points >= 122.4) { System.out.println("Rank:A2"); }else { System.out.println("Rank:A3"); } }
Rank:A1
القيم الممرة ذات المرجعية Passing Parameters by Value
أثناء العمل في إطار عملية الاستدعاء ، يتم تمرير الحجج. يجب أن تكون هذه بنفس ترتيب المعلمات الخاصة بها في مواصفات الطريقة. يمكن تمرير المعلمات حسب القيمة أو حسب المرجع.
تمرير المعلمات حسب القيمة يعني استدعاء طريقة ذات معلمة. من خلال هذا ، يتم تمرير قيمة الوسيطة إلى المعلمة.
تمرير المعلمات حسب القيمة يعني استدعاء طريقة ذات معلمة. من خلال هذا ، يتم تمرير قيمة الوسيطة إلى المعلمة.
مثال Example
يعرض البرنامج التالي مثالًا على تمرير المعلمة حسب القيمة. تظل قيم الوسائط كما هي حتى بعد استدعاء الأسلوب.public class swappingExample { public static void main(String[] args) { int a = 30; int b = 45; System.out.println("Before swapping, a = " + a + " and b = " + b); // Invoke the swap method swapFunction(a, b); System.out.println("\n**Now, Before and After swapping values will be same here**:"); System.out.println("After swapping, a = " + a + " and b is " + b); } public static void swapFunction(int a, int b) { System.out.println("Before swapping(Inside), a = " + a + " b = " + b); // Swap n1 with n2 int c = a; a = b; b = c; System.out.println("After swapping(Inside), a = " + a + " b = " + b); } }
المخرجات
Before swapping, a = 30 and b = 45 Before swapping(Inside), a = 30 b = 45 After swapping(Inside), a = 45 b = 30 **Now, Before and After swapping values will be same here**: After swapping, a = 30 and b is 45
Method Overloading
عندما يكون للفئة دالتين او طريقتان أو أكثر بنفس الاسم ولكن مع معلمات مختلفة ، يُعرف باسم التحميل الزائد الدالة او للطريقة. إنه مختلف عن التجاوز. في التجاوز ، يكون للطريقة نفس اسم الطريقة ، والنوع ، وعدد المعلمات ، إلخ.
لننظر في المثال الذي تمت مناقشته مسبقًا للعثور على الحد الأدنى من أعداد نوع العدد الصحيح. إذا ، دعنا نقول أننا نريد العثور على الحد الأدنى لعدد الكتابة المزدوجة. بعد ذلك سيتم تقديم مفهوم الحمولة الزائدة لإنشاء طريقتين أو أكثر بنفس الاسم ولكن مع معلمات مختلفة.
المثال التالي يفسر نفسه -
لننظر في المثال الذي تمت مناقشته مسبقًا للعثور على الحد الأدنى من أعداد نوع العدد الصحيح. إذا ، دعنا نقول أننا نريد العثور على الحد الأدنى لعدد الكتابة المزدوجة. بعد ذلك سيتم تقديم مفهوم الحمولة الزائدة لإنشاء طريقتين أو أكثر بنفس الاسم ولكن مع معلمات مختلفة.
المثال التالي يفسر نفسه -
مثال Example
public class ExampleOverloading { public static void main(String[] args) { int a = 11; int b = 6; double c = 7.3; double d = 9.4; int result1 = minFunction(a, b); // same function name with different parameters double result2 = minFunction(c, d); System.out.println("Minimum Value = " + result1); System.out.println("Minimum Value = " + result2); } // for integer public static int minFunction(int n1, int n2) { int min; if (n1 > n2) min = n2; else min = n1; return min; } // for double public static double minFunction(double n1, double n2) { double min; if (n1 > n2) min = n2; else min = n1; return min; } }
المخرجات
Minimum Value = 6 Minimum Value = 7.3
تمرير المتغيرات من خلال سطر الأوامر Using Command-Line Arguments
قد ترغب أحيانًا في تمرير بعض المعلومات إلى برنامج عند تشغيله. يتم تحقيق ذلك عن طريق تمرير وسيطات سطر الأوامر إلى main ().
وسيطة سطر الأوامر هي المعلومات التي تتبع اسم البرنامج مباشرةً في سطر الأوامر عند تنفيذه. من السهل جدًا الوصول إلى وسيطات سطر الأوامر داخل برنامج Java. يتم تخزينها كسلسلة في صفيف سلسلة تمريرها إلى main ().
مثال
يعرض البرنامج التالي كل وسيطات سطر الأوامر التي يطلق عليها -
وسيطة سطر الأوامر هي المعلومات التي تتبع اسم البرنامج مباشرةً في سطر الأوامر عند تنفيذه. من السهل جدًا الوصول إلى وسيطات سطر الأوامر داخل برنامج Java. يتم تخزينها كسلسلة في صفيف سلسلة تمريرها إلى main ().
مثال
يعرض البرنامج التالي كل وسيطات سطر الأوامر التي يطلق عليها -
public class CommandLine { public static void main(String args[]) { for(int i = 0; i<args.length; i++) { System.out.println("args[" + i + "]: " + args[i]); } } }
نفذ
$java CommandLine this is a command line 200 -100
المخرجات
args[0]: this args[1]: is args[2]: a args[3]: command args[4]: line args[5]: 200 args[6]: -100
الكلمة المحجوزة هذه The this keyword
هذه هي الكلمة الأساسية في Java والتي يتم استخدامها كمرجع لكائن الفئة الحالية ، مع طريقة المثيل أو المُنشئ. باستخدام هذا ، يمكنك الرجوع إلى أعضاء الفصل مثل المنشئات والمتغيرات والأساليب.
ملاحظة - الكلمة الأساسية التي يتم استخدامها فقط داخل أساليب المثيل أو المُنشئين
ملاحظة - الكلمة الأساسية التي يتم استخدامها فقط داخل أساليب المثيل أو المُنشئين
In general, the keyword this is used to −
- قم بتمييز متغيرات المثيل عن المتغيرات المحلية إذا كانت لها نفس الأسماء ، داخل مُنشئ أو طريقة.
class Student { int age; Student(int age) { this.age = age; } }
- استدعاء نوع واحد من المنشئ (المنشئ المعلمة أو الافتراضي) من الآخر في فئة. ومن المعروف باسم استدعاء منشئ صريح.
class Student { int age Student() { this(20); } Student(int age) { this.age = age; } }
مثال Example
فيما يلي مثال يستخدم هذه الكلمة الأساسية للوصول إلى أعضاء الفصل. انسخ والصق البرنامج التالي في ملف يحمل الاسم ، This_Example.java.
public class This_Example { // Instance variable num int num = 10; This_Example() { System.out.println("This is an example program on keyword this"); } This_Example(int num) { // Invoking the default constructor this(); // Assigning the local variable num to the instance variable num this.num = num; } public void greet() { System.out.println("Hi Welcome to Tutorialspoint"); } public void print() { // Local variable num int num = 20; // Printing the local variable System.out.println("value of local variable num is : "+num); // Printing the instance variable System.out.println("value of instance variable num is : "+this.num); // Invoking the greet method of a class this.greet(); } public static void main(String[] args) { // Instantiating the class This_Example obj1 = new This_Example(); // Invoking the print method obj1.print(); // Passing a new value to the num variable through parametrized constructor This_Example obj2 = new This_Example(30); // Invoking the print method again obj2.print(); } }
المخرجات
This is an example program on keyword this value of local variable num is : 20 value of instance variable num is : 10 Hi Welcome to Tutorialspoint This is an example program on keyword this value of local variable num is : 20 value of instance variable num is : 30 Hi Welcome to Tutorialspoint
Variable Arguments(var-args)
يتيح لك JDK 1.5 المرور بعدد متغير من
الوسائط من نفس النوع إلى طريقة. يتم الإعلان عن المعلمة في الطريقة كما يلي -
الوسائط من نفس النوع إلى طريقة. يتم الإعلان عن المعلمة في الطريقة كما يلي -
typeName... parameterName
في تعريف الدالة ، يمكنك تحديد النوع الذي يليه علامة القطع (...). يمكن تحديد معلمة متغيرة الطول واحدة فقط في إحدى الطرق او الدوال ، ويجب أن تكون هذه المعلمة هي المعلمة الأخيرة. يجب أن تسبق أي معلمات العادية.
مثال
مثال
public class VarargsDemo { public static void main(String args[]) { // Call method with variable args printMax(34, 3, 3, 2, 56.5); printMax(new double[]{1, 2, 3}); } public static void printMax( double... numbers) { if (numbers.length == 0) { System.out.println("No argument passed"); return; } double result = numbers[0]; for (int i = 1; i < numbers.length; i++) if (numbers[i] > result) result = numbers[i]; System.out.println("The max value is " + result); } }
المخرجات
The max value is 56.5 The max value is 3.0
دالة الانهاء او تدمير الكائن The finalize( ) Method
من الممكن تحديد طريقة سيتم استدعاؤها قبل تدمير الكائن نهائيًا بواسطة جامع البيانات المهملة. تسمى هذه الطريقة finalize () ، ويمكن استخدامها للتأكد من أن الكائن ينتهي بشكل نظيف.
على سبيل المثال ، يمكنك استخدام finalize () للتأكد من إغلاق ملف مفتوح يمتلكه هذا الكائن.
لإضافة finalizer إلى فصل دراسي ، يمكنك ببساطة تحديد طريقة finalize (). يستدعي وقت تشغيل Java هذه الطريقة كلما كان على وشك إعادة تدوير كائن من هذه الفئة.
داخل طريقة finalize () ، سوف تحدد تلك الإجراءات التي يجب تنفيذها قبل إتلاف كائن.
طريقة finalize () لديها هذا النموذج العام -
protected void finalize( ) { // finalization code here }
هنا ، الكلمة المحمية هي محدد يمنع الوصول إلى اللمسات الأخيرة () برمز معرف خارج فئتها.
هذا يعني أنه لا يمكنك معرفة متى أو حتى إذا كان سيتم تنفيذ () final. على سبيل المثال ، إذا انتهى البرنامج قبل حدوث تجميع البيانات المهملة ، فلن يتم تنفيذ () إنهاء ().
التسميات: Java جافا#
<< الصفحة الرئيسية