Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux 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);
 
}

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) );
 
    }
 
}

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

7

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

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

Operations.java
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) );
 
    }
 
}

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

7

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


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

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

بهذا الكود.

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

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

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