Java هي لغة برمجة موجهة للكائنات، والكائنات هي اللبنات الأساسية في Java. ومع ذلك، توفر Java أيضًا مفهوم الفئة الثابتة. الفئة الثابتة هي فئة يمكن أن تحتوي فقط على أساليب ثابتة ومتغيرات وفئات متداخلة. في هذه المقالة، سنستكشف ماهية الفئة الثابتة، وكيف تعمل، وتنفيذها في Java.
فئة ثابتة في جافا
الفئة الثابتة في Java هي فئة لا يمكن إنشاء مثيل لها. أي أننا لا نستطيع إنشاء كائنات من فئة ثابتة. لا يمكننا الوصول إلى أعضائها إلا باستخدام اسم الفئة نفسها. بمعنى آخر، الفئة الثابتة هي فئة تحتوي على أعضاء ثابتين فقط. غالبًا ما تُستخدم الفئات الثابتة لتجميع طرق المرافق ذات الصلة معًا. على سبيل المثال، فئة Math في Java هي فئة ثابتة توفر عمليات رياضية متنوعة مثل العثور على القيمة القصوى أو الدنيا، والدوال المثلثية، والمزيد. يمكننا الوصول إلى الأساليب الموجودة في فئة الرياضيات باستخدام اسم الفئة وعامل النقطة، مثل هذا: Math.max(5, 10) .مثال
دعونا نلقي نظرة على مثال لفئة ثابتة في جافا. لنفترض أننا نريد إنشاء فئة لتنفيذ عمليات سلسلة مختلفة مثل عكس سلسلة، والعثور على طول السلسلة، والمزيد. في هذا المثال، قمنا بإنشاء فئة ثابتة تسمى StringUtils ، والتي تحتوي على طريقتين ثابتتين: العكسي والطول . تأخذ هذه الأساليب سلسلة كوسيطة وترجع السلسلة المعكوسة وطول السلسلة، على التوالي. في الطريقة الرئيسية ، قمنا بإنشاء سلسلة نصية وتمريرها إلى الطريقتين "reverse" و"length" لفئة StringUtils .
public class StringUtils {
public static String reverse(String str) {
StringBuilder sb = new StringBuilder(str);
return sb.reverse().toString();
}
public static int length(String str) {
return str.length();
}
public static void main(String[] args) {
String str = "Hello, World!";
String reversedStr = StringUtils.reverse(str);
int strLength = StringUtils.length(str);
System.out.println(reversedStr);
System.out.println(strLength);
}
}
مخرجات البرنامج ستكون:
!دلرو ،أوليه 13
في المثال المحدث التالي، أضفنا فئة متداخلة ثابتة تسمى Formatter داخل فئة StringUtils . تحتوي هذه الفئة المتداخلة الثابتة أيضًا على طريقة ثابتة تسمى التنسيق الذي يأخذ سلسلة ويعيد نسختها الكبيرة.
في الطريقة الرئيسية ، استخدمنا فئة Formatter المتداخلة الثابتة لتنسيق السلسلة النصية وطباعتها على وحدة التحكم. لقد قمنا أيضًا بتسمية الطريقتين العكسية والطولية لفئة StringUtils لعكس السلسلة والعثور على طولها، على التوالي .
public class StringUtils {
// nested Static class
public static class Formatter {
public static String format(String str) {
return str.toUpperCase();
}
}
public static String reverse(String str) {
StringBuilder sb = new StringBuilder(str);
return sb.reverse().toString();
}
public static int length(String str) {
return str.length();
}
public static void main(String[] args) {
String str = "Hello, World!";
// Using static class
String formattedStr = StringUtils.Formatter.format(str);
System.out.println(formattedStr);
String reversedStr = StringUtils.reverse(str);
int strLength = StringUtils.length(str);
System.out.println(reversedStr);
System.out.println(strLength);
}
}
مخرجات البرنامج ستكون:
مرحبا بالعالم! !دلرو ،أوليه 13
كما ترون، يمكن أن تحتوي الفئات الثابتة في Java أيضًا على فئات متداخلة ثابتة، والتي يمكن استخدامها لتجميع الوظائف ذات الصلة معًا.
GO TO FULL VERSION