Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

Javaطريقة تعريف دالة تأخذ أكثر من باراميتر بأسلوب Lambda Expressions في جافا

في المثال التالي قمنا بتعريف إنترفيس إسمه Operations يحتوي على دالة إسمها sum() عند استدعاءها نعطيها عددين فترجع ناتج جمعهما.
بعدها قمنا بإنشاء كلاس إسمه Main بداخله قمنا بإنشاء Anonymous Inner Class يطبق الإنترفيس Operations.

ملاحظة: لم نستخدم أسلوب الـ Lambda Expressions.

المثال الأول

Operations.java
public interface Operations {
// Operations في أي كلاس سيطبق الإنترفيس Override هذه الدالة يجب أن نفعل لها
int sum(int a, int b);
}
public interface Operations { // Operations في أي كلاس سيطبق الإنترفيس Override هذه الدالة يجب أن نفعل لها int sum(int a, int b); }

Main.java
public class Main {
public static void main(String[] args) {
// obj مع إنشاء كائن منه و تخزينه في الكائن Operations من الإنترفيس Anonymous Inner Class هنا قمنا بإنشاء
Operations obj = new Operations() {
// sum() للدالة Override و فعلنا
@Override
public int sum(int a, int b) {
return a+b;
}
};
// لطباعة ناتج العددين 3 و 4 sum() هنا قمنا باستدعاء الدالة
System.out.println( obj.sum(3,4) );
}
}
public class Main { public static void main(String[] args) { // obj مع إنشاء كائن منه و تخزينه في الكائن Operations من الإنترفيس Anonymous Inner Class هنا قمنا بإنشاء Operations obj = new Operations() { // sum() للدالة Override و فعلنا @Override public int sum(int a, int b) { return a+b; } }; // لطباعة ناتج العددين 3 و 4 sum() هنا قمنا باستدعاء الدالة System.out.println( obj.sum(3,4) ); } }

سنحصل على النتيجة التالية عند التشغيل.

7
7

هنا قمنا بإعادة نفس المثال السابق باستخدام أسلوب الـ Lambda Expressions.

المثال الثاني

Operations.java
public interface Operations {
// Operations في أي كلاس سيطبق الإنترفيس Override هذه الدالة يجب أن نفعل لها
int sum(int a, int b);
}
public interface Operations { // Operations في أي كلاس سيطبق الإنترفيس Override هذه الدالة يجب أن نفعل لها int sum(int a, int b); }

Main.java
public class Main {
public static void main(String[] args) {
// sum() لإنشاء الكائن و تعريف الدالة Lambda Expressions هنا استخدمنا أسلوب الـ
Operations obj = (int a, int b)-> {
return a+b;
};
// لطباعة ناتج العددين 3 و 4 sum() هنا قمنا باستدعاء الدالة
System.out.println( obj.sum(3,4) );
}
}
public class Main { public static void main(String[] args) { // sum() لإنشاء الكائن و تعريف الدالة Lambda Expressions هنا استخدمنا أسلوب الـ Operations obj = (int a, int b)-> { return a+b; }; // لطباعة ناتج العددين 3 و 4 sum() هنا قمنا باستدعاء الدالة System.out.println( obj.sum(3,4) ); } }

سنحصل على النتيجة التالية عند التشغيل.

7
7

في المثال السابق كان بإمكاننا عدم تحديد أنواع الباراميترات و عدم وضع أقواس البداية و النهاية و الجملة return عندما فعلنا Override للدالة sum() لأننا وضعنا أمر واحد فيها.


إذاً يمكن تبديل الكود التالي.

Operations obj = (int a, int b)-> {
return a+b;
};
Operations obj = (int a, int b)-> { return a+b; };

بهذا الكود.

Operations obj = (a, b)-> {
return a+b;
};
Operations obj = (a, b)-> { return a+b; };

أو بهذا الكود.

Operations obj = (a, b)-> return a+b;
Operations obj = (a, b)-> return a+b;