الدوال Methods
عبارة عن مجموعة من الأوامر أو الاكواد تحت اسم معين لعمل مهمة محددة تعمل فقط عندما يتم استدعائها ، ويتم تطبيقها علي مدخلات “parameters” أو بدونها ويمكن أن تعود بقيمة او لاتعود .
Syntax
static void myMethod() {
// code to be executed
}
توضيح :
- static سنحاول توضيحها في دروس البرمجة الكائنية التوجه
- void تعني ان الدالة لا تقوم بارجاع اي قيمة
- myMethod اسم الدالة ويمكن كتابة اي اسم اختياري
مثال
public class Example {
static void myMethod() {
System.out.println("Hello World");
}
public static void main(String[] args) {
myMethod(); // الاستدعاء
}
}
Output :
Hello World
شرح المثال
في هذه المثال قمنا بانشاء دالة ثانية وقمنا بتسميتها myMethod وهذه الدالة فقط تعمل على طباعة رسالة كمثال بسيط وتم أستدعائها داخل الدالة الرئيسية الmain
مثال ثاني استدعاء الدالة اكثر من مرة
public class Example {
static void myMethod() {
System.out.println("Hello World");
}
public static void main(String[] args) {
myMethod();
myMethod();
myMethod();
}
}
Output :
Hello World
Hello World
Hello World
مثال ثاني استدعاء الدالة اكثر من مرةعمل اكثر من دالة
public class Example {
static void method1() {
System.out.println("I am Method 1");
}
static void method2() {
System.out.println("I am Method 2");
}
public static void main(String[] args) {
method1();
method2();
}
}
Output :
I am Method 1
I am Method 2
معاملات الدوال Methods Parameters
يمكن تمرير البيانات او المعلومات الى الدوال methods كمعاملات Parameters , والمعاملات هي متغيرات داخل الدالة يتم كتابتها داخل الاقواس بعد اسم الدالة ويمكن اضافة العديد من المعاملات بدون تقييد.
Syntax
static void myMethods(param1,param2,...) {
// code to be executed
}
static void student(String name,int degree) {
// code to be executed
}
مثال الاول
في هذا المثال مررنا معامل parameter واحد من نوع string ليتم طباعته
public class Example {
static void printName(String name) {
System.out.println("Hello "+ name);
}
public static void main(String[] args) {
printName("Saif");
printName("Ali");
printName("Ahmed");
}
}
Output :
Hello Saif
Hello Ali
Hello Ahmed
مثال ثاني
في هذا المثال مررنا معاملين two parameter واحد من نوع String والثاني من نوع int
public class Example {
static void student(String name,int age) {
System.out.println("Name :"+name+",Age :"+age);
}
public static void main(String[] args) {
student("Saif",25);
student("Ali",19);
}
}
Output :
Name :Saif, Age :25
Name :Ali, Age :19
مثال ثالث
في هذا المثال تم أستخدام اربعة دوال لأجراء عمليات الجمع والطرح والضرب والقسمة :
public class Example {
static void sumMethod(int num1,int num2) {
int sum=num1+num2;
System.out.println("Sum = "+sum);
}
static void subMethod(int num1,int num2) {
int sub=num1-num2;
System.out.println("Sub = "+sub);
}
static void mulMethod(int num1,int num2) {
int mul=num1*num2;
System.out.println("Mul = "+mul);
}
static void divMethod(int num1,int num2) {
int div=num1/num2;
System.out.println("Div = "+div);
}
public static void main(String[] args) {
sumMethod(5,10);
subMethod(20,10);
mulMethod(2,6);
divMethod(10,2);
}
}
Output :
Sum = 15
Sub = 10
Mul = 12
Div = 5
الارجاع في الدوال Return Methods
في هذا المثال نتعرف كيفية التعامل مع الارجاع return في الدوال
return تستخدم لأرجاع قيمة بعد معالجتها الى الدالة الرئيسية ليتم تضمينها في متغير أو أجراء معالجات أخرى عليها ضمن الدالة الرئيسية .
انواع الارجاع في الدروس السابقة تم تعريف جميع الدوال على انها void اي ان الدالة لا ترجع اي قيمة اما في الدرس التالي سنتعلم كيف ان الدالة تقوم بارجاع قيم من اي نوع سواء كانت قيم int او string او غيرها مخلال كتابة النوع بدلاُ من void .
Syntax
static int myMethods() {
// return int
}
static String myMethods() {
// return String
}
static boolean myMethods() {
// return boolean
}
مثال
قمنا في هذا المثال بتعريف دالة اسمها increaseMethod تحتوي على معامل واحد وقمنا بكتابة النوع int بدل الvoid وضيفتها زيادة اي رقم يتم تمريره بمقدار 20 , في الدالة الرئيسية قمنا بتمرير قيمة 60 الى الدالة increaseMethod والتي بدورها ارجعت لنا ال60 مضاف عليها 20 وبالتالي المجموع يساوي 80 .
public class Example {
static int increaseMethod(int x) {
return x+20;
}
public static void main(String[] args) {
System.out.println(increaseMethod(60));
}
}
Output :
80
مثال
قمنا في هذا المثال بتعريف دالة اسمها SumMethods تحتوي على معاملين وقمنا بكتابة النوع int بدل الvoid لانها تقوم بجمع الرقين وترجع ناتج الجمع الى الدالة الرئيسية ليتم وضعها بمتغير الsum الذي تم تعريفه في دالة الرئيسية .
public class Example {
static int SumMethods(int num1,int num2) {
int s=num1+num2;
return s;
}
public static void main(String[] args) {
int sum=SumMethods(5,10);
System.out.println("Sum = "+sum);
}
}
Output :
Sum = 15