الدوال والفئات العامة
عرّف فئات عامة بمعلمات نوع، واكتب دوال عامة مع <T> قبل نوع القيمة المُعادة. تعلّم المواضع التي يساعد فيها استدلال النوع.
الدوال والفئات العامة درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 3 دروس في المجموع.
نظرة عامة
تتيح الفئات العامة إعادة استخدام تصميم واحد مع أنواع عديدة، بينما تعمل الدوال العامة باستخدام معاملات الأنواع حتى داخل الفئات غير العامة. سننشئ Pair<T,U> صغيرًا، ودالة swap، ومصنعًا ثابتًا.
لماذا نستخدم الفئات العامة؟
لماذا نجعل الفئة عامة؟
- تصميم واحد وأنواع متعددة: يقلل التكرار.
- أمان الأنواع: يكتشف الأنواع الخاطئة أثناء الترجمة.
- واجهة برمجية نظيفة: لا حاجة إلى تحويلات صريحة عند الإعادة.
الشفرة: Pair<T,U>
تستخدم Pair<T,U> الفئة نفسها مع نوعين مختلفين. لا حاجة إلى تحويلات صريحة، وتكون الواجهة البرمجية واضحة.
public class Main {
// Simple generic data holder with two type parameters
static class Pair<T, U> {
private final T first;
private final U second;
Pair(T first, U second) { this.first = first; this.second = second; }
T first() { return first; }
U second() { return second; }
public String toString() { return "Pair(" + first + ", " + second + ")"; }
}
public static void main(String[] args) {
Pair<String, Integer> p = new Pair<>("age", 21);
System.out.println(p);
System.out.println(p.first() + " -> " + p.second());
}
}
الدوال العامة: التوقيع
تعمل الدوال العامة بشكل مستقل عن كون الفئة عامة. التوقيع: <T> returnType... مثال: <T> T firstOrDefault(T[] arr, T def).
الشفرة: swap عامة
تم تعريف <T> على مستوى الدالة، ولذلك تعمل مع مصفوفات مختلفة. لم نحدّد النوع عند الاستدعاء؛ بل استنتجه المصرّف.
public class Main {
// Generic utility method: swap two indices of an array of any reference type
static <T> void swap(T[] arr, int i, int j) {
T tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp;
}
public static void main(String[] args) {
String[] names = { "Ada", "Bob", "Cyd" };
swap(names, 0, 2); // works with String[]
for (int k = 0; k < names.length; k = k + 1) {
System.out.print(names[k] + (k < names.length - 1 ? " " : "\n"));
}
}
}
الشفرة: مصنع عام ثابت
في المصنع العام الثابت، يُستنتج النوع عند استدعاء of(T v). ويكون الاستخدام واضحًا ومقروءًا.
public class Main {
static class Box<T> {
private final T value;
private Box(T v) { this.value = v; }
public T get() { return value; }
// Static generic factory method inside a generic class
public static <T> Box<T> of(T v) { return new Box<T>(v); }
}
public static void main(String[] args) {
// Type inferred by diamond and method generic parameter
Box<Integer> bi = Box.of(42);
Box<String> bs = Box.of("hi");
System.out.println(bi.get() + 1);
System.out.println(bs.get().toUpperCase());
}
}
تحقق من الدوال العامة
تحقق سريع: كيف تُعلن عن دالة عامة بطريقة صحيحة؟
مراجعة
مراجعة: تقلل الفئات العامة (Pair<T,U>) التكرار، بينما تعمل الدوال العامة (بتوقيع <T>) بشكل مستقل عن الفئة. ويبسّط استنتاج النوع الاستدعاءات.
الأسئلة الشائعة
هل درس «الدوال والفئات العامة» مجاني؟
نعم — نص درس «الدوال والفئات العامة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 3 دروس في المجموع.
ماذا ستتعلم في «الدوال والفئات العامة»؟
عرّف فئات عامة بمعلمات نوع، واكتب دوال عامة مع <T> قبل نوع القيمة المُعادة. تعلّم المواضع التي يساعد فيها استدلال النوع. تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟
لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.
كم من الوقت يستغرق درس «الدوال والفئات العامة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟
نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الواجهات عمليًا
- أساسيات Generics (T والاستدلال)
- الدوال والفئات العامة