السلاسل النصية String والأصناف Class والكائنات Object والبرامج الفرعية Subroutine في جافا
تُعد لغة جافا (Java) من أشهر لغات البرمجة عالية المستوى وأكثرها استخداماً في تطوير التطبيقات المتنوعة، سواء كانت تطبيقات ويب أو تطبيقات سطح المكتب أو تطبيقات الهواتف المحمولة. تتميز جافا بخصائص متعددة مثل القابلية للتنقل عبر الأنظمة المختلفة، وإدارة الذاكرة التلقائية، والبرمجة الكائنية التوجه (Object-Oriented Programming). من بين المفاهيم الأساسية في جافا والتي تشكل لبنة أساسية لفهم البرمجة فيها هي السلاسل النصية (String)، والأصناف (Classes)، والكائنات (Objects)، والبرامج الفرعية (Subroutines).
هذا المقال يستعرض هذه المفاهيم تفصيلياً، مع شرح دقيق وواضح لكل مفهوم مع تقديم أمثلة تطبيقية توضح أهميتها ودورها في تطوير برامج جافا.
السلاسل النصية String في جافا
تعريف السلاسل النصية
السلسلة النصية (String) في جافا هي عبارة عن مجموعة متتابعة من الأحرف النصية التي تُستخدم لتخزين وعرض النصوص. تعد السلاسل النصية من أكثر أنواع البيانات استخدامًا في البرمجة، فهي تمثل النصوص، الأسماء، العناوين، وغيرها من البيانات النصية.
في جافا، السلاسل النصية ليست نوع بيانات بدائيًا (Primitive type) كما هو الحال مع int أو boolean، بل هي عبارة عن كائن (Object) من الصنف String. هذا يعني أن أي سلسلة نصية يتم إنشاؤها هي في الواقع كائن من هذا الصنف.
إنشاء السلاسل النصية
يمكن إنشاء سلسلة نصية في جافا بطريقتين رئيسيتين:
-
الطريقة المباشرة (باستخدام الأقواس المزدوجة)
مثال:javaString greeting = "مرحبا بالعالم"; -
باستخدام المُنشئ الخاص بالصنف String
مثال:javaString greeting = new String("مرحبا بالعالم");
تُعتبر الطريقة الأولى أكثر كفاءة لأنها تستفيد من خاصية التخزين المؤقت (String Pool) التي تحتفظ بالكائنات النصية لتقليل استهلاك الذاكرة.
خصائص السلاسل النصية في جافا
-
عدم القابلية للتغيير (Immutable):
بمجرد إنشاء كائن String، لا يمكن تغيير محتواه. أي تعديل على السلسلة النصية يؤدي إلى إنشاء نسخة جديدة منها في الذاكرة. -
دعم عمليات نصية متعددة:
توفر جافا العديد من الدوال والطرق (Methods) للعمل مع النصوص، مثل الطول (length())، والبحث عن نص فرعي (indexOf())، واستبدال النصوص (replace())، والتحويل إلى أحرف كبيرة أو صغيرة (toUpperCase(),toLowerCase())، وغيرها.
مثال عملي
javaString name = "محمد";
System.out.println("مرحباً " + name);
System.out.println("طول النص: " + name.length());
System.out.println("النص بعد التحويل إلى أحرف كبيرة: " + name.toUpperCase());
الأصناف Class في جافا
تعريف الصنف
الصنف (Class) في جافا هو قالب أو مخطط يتم من خلاله تعريف نوع معين من الكائنات (Objects). يحتوي الصنف على البيانات (الحقول أو المتغيرات) والسلوكيات (الدوال أو الطرق) التي تميز الكائنات المشتقة منه.
يمكن النظر إلى الصنف على أنه وصف مفصل لكائن معين، يحدد خصائصه وطريقة تفاعله مع البيانات الأخرى.
مكونات الصنف
-
الحقول (Fields): تمثل المتغيرات التي تحتوي على البيانات الخاصة بالكائن.
-
الطرق (Methods): هي الدوال التي تحدد سلوك الكائن أو الوظائف التي يمكنه القيام بها.
-
البنّاء (Constructor): هو برنامج فرعي خاص يُستخدم لإنشاء الكائنات وتهيئتها بالقيم الأولية.
تعريف صنف بسيط في جافا
javapublic class Person {
// الحقول
String name;
int age;
// البنّاء
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// طريقة عرض معلومات الشخص
public void displayInfo() {
System.out.println("الاسم: " + name);
System.out.println("العمر: " + age);
}
}
شرح المثال
في المثال أعلاه، Person هو صنف يحتوي على حقلين name و age، وبنّاء يستقبل قيم هذه الحقول عند إنشاء الكائن. كما يحتوي على طريقة displayInfo التي تعرض بيانات الكائن.
الكائنات Object في جافا
تعريف الكائن
الكائن (Object) في جافا هو نسخة حية ومُفعّلة من الصنف. بمجرد تعريف الصنف، يمكن إنشاء عدد غير محدود من الكائنات من هذا الصنف، كل كائن يحمل بياناته الخاصة ويمكنه تنفيذ السلوكيات المعرفة في الصنف.
إنشاء كائن في جافا
يمكن إنشاء كائن باستخدام الكلمة المفتاحية new مع استدعاء البنّاء الخاص بالصنف.
javaPerson person1 = new Person("علي", 30);
person1.displayInfo();
علاقة الصنف بالكائن
-
الصنف هو التصميم أو القالب.
-
الكائن هو التطبيق الفعلي لذلك التصميم.
هذا يسمح بإعادة استخدام الكود وتطوير برامج مرنة وقابلة للتوسع.
إدارة الكائنات والذاكرة
جافا تدير ذاكرة الكائنات تلقائياً من خلال آلية تُسمى جمع القمامة (Garbage Collection)، التي تقوم بتحرير الذاكرة المستخدمة من قبل الكائنات التي لم يعد لها مرجع في البرنامج.
البرامج الفرعية Subroutines في جافا
تعريف البرامج الفرعية
البرامج الفرعية (Subroutines) في جافا هي عبارة عن أجزاء من الكود تُعرف عادة بالطرق (Methods). تُستخدم لتقسيم البرنامج إلى وحدات صغيرة ومنظمة تقوم بتنفيذ مهمة معينة، مما يسهل إعادة الاستخدام، الصيانة، والاختبار.
أنواع البرامج الفرعية في جافا
-
الطرق العادية (Instance Methods): تُنفذ على كائنات الصنف.
-
الطرق الثابتة (Static Methods): تنتمي للصنف نفسه ولا تحتاج إلى إنشاء كائن لاستدعائها.
تعريف طريقة في جافا
javapublic int sum(int a, int b) {
return a + b;
}
في هذا المثال، sum طريقة تستقبل متغيرين وترجع ناتج جمعهما.
الطرق الثابتة
javapublic static void printMessage() {
System.out.println("رسالة من الطريقة الثابتة");
}
يمكن استدعاء هذه الطريقة بدون إنشاء كائن:
javaClassName.printMessage();
استخدام البرامج الفرعية في البرمجة الكائنية
تساعد الطرق في تعريف السلوكيات التي يمكن للكائن القيام بها، وتسمح بتنظيم الكود بشكل منطقي، مثل فصل عمليات الحساب عن عمليات الإدخال والإخراج.
مثال كامل يدمج المفاهيم الأربعة
javapublic class Calculator {
// طريقة لجمع رقمين
public int add(int x, int y) {
return x + y;
}
// طريقة ثابتة لطباعة رسالة
public static void printWelcome() {
System.out.println("مرحباً بكم في الحاسبة");
}
}
public class Main {
public static void main(String[] args) {
Calculator.printWelcome();
Calculator calc = new Calculator();
int result = calc.add(10, 20);
System.out.println("الناتج: " + result);
}
}
العلاقة بين المفاهيم الأساسية: String, Class, Object, Subroutine
تتكامل هذه المفاهيم لتشكيل جوهر لغة جافا:
-
السلاسل النصية (
String) هي نوع خاص من الكائنات التي تُستخدم لتخزين النصوص. -
الأصناف (
Class) تُعرّف البنية العامة للكائنات. -
الكائنات (
Object) هي النسخ الحية للأصناف والتي تحمل البيانات وتنفيذ الوظائف. -
البرامج الفرعية (
Subroutineأو الطرق) تُستخدم لتعريف سلوكيات الكائنات أو القيام بمهام مستقلة.
أهمية فهم هذه المفاهيم في البرمجة بجافا
التمكن من هذه المفاهيم يفتح المجال لتصميم برامج مرنة، قابلة للصيانة والتطوير، كما يساعد في استغلال ميزات البرمجة الكائنية في جافا، والتي تسمح بإنشاء تطبيقات معقدة مع تقليل التكرار وتعزيز إعادة استخدام الكود.
جدول يوضح الفرق بين أنواع البيانات والبرامج الفرعية
| المفهوم | التعريف | الخصائص الرئيسية | أمثلة |
|---|---|---|---|
| String | كائن نصي لتخزين النصوص | غير قابل للتغيير، يحتوي على طرق نصية كثيرة | "مرحبا", new String("عالم") |
| Class | قالب يحدد شكل وسلوك الكائنات | يحتوي على حقول، طرق، ومنشئات | class Person {...} |
| Object | نسخة حية من الصنف | يحمل بيانات خاصة، يمكن تنفيذ طرق الصنف | Person p = new Person() |
| Subroutine | قطعة كود تقوم بمهمة محددة | يمكن أن تكون ثابتة أو مرتبطة بالكائن | void display() {...} |
خاتمة
تمثل السلاسل النصية، الأصناف، الكائنات، والبرامج الفرعية الركائز الأساسية لفهم كيفية بناء برامج باستخدام لغة جافا. المعرفة الدقيقة بهذه المفاهيم تمكن المبرمج من كتابة كود منظم، واضح، وفعال، مع إمكانية تطوير حلول برمجية متنوعة من تطبيقات بسيطة إلى أنظمة كبيرة ومعقدة. تبني هذه المفاهيم فهماً عميقاً للبرمجة الكائنية التوجه، وهو الأساس الذي ترتكز عليه لغة جافا بشكل كبير، ويجعلها أداة قوية في عالم البرمجة الحديثة.
المصادر والمراجع
-
كتاب “Java: A Beginner’s Guide” للمؤلف هربرت شيلدت (Herbert Schildt).
-
الموقع الرسمي للغة جافا: https://docs.oracle.com/javase/tutorial/

