أساسيات البرمجة كائنية التوجه في جافا: المتغيرات، الجمل الشرطية والحلقات
مقدمة حول البرمجة كائنية التوجه (OOP) في جافا
تعتبر البرمجة كائنية التوجه (Object-Oriented Programming – OOP) أحد أهم الأساليب والمنهجيات في تطوير البرمجيات الحديثة، وهي تسهل عملية بناء البرامج المعقدة بطريقة منظمة وقابلة لإعادة الاستخدام. تتميز هذه البرمجة بأنها تعتمد على تقسيم البرنامج إلى وحدات تسمى “كائنات” (Objects)، كل كائن يمثل جزءًا مستقلاً يتضمن بيانات (خصائص) وسلوكيات (وظائف أو طرق Methods).
جافا هي واحدة من أشهر لغات البرمجة التي تدعم هذا الأسلوب بشكل كامل، مما جعلها الخيار الأول للكثير من المطورين لبناء تطبيقات متنوعة تبدأ من تطبيقات سطح المكتب إلى تطبيقات الويب وأنظمة الهواتف المحمولة. يرتكز مبدأ OOP في جافا على أربعة مفاهيم رئيسية هي: التغليف (Encapsulation)، التجريد (Abstraction)، التوريث (Inheritance)، وتعدد الأشكال (Polymorphism).
في هذا المقال، سيتم التركيز على فهم أساسيات البرمجة كائنية التوجه في جافا مع شرح مفصل للمتغيرات، الجمل الشرطية، والحلقات، وهي من اللبنات الأساسية التي يحتاجها كل مبرمج مبتدئ أو متوسط لتطوير برامج ناجحة وفعالة.
المتغيرات في جافا
تعريف المتغيرات وأهميتها
المتغير هو موقع في الذاكرة يتم تخصيصه لتخزين بيانات يمكن تغييرها أثناء تنفيذ البرنامج. في جافا، لكل متغير نوع بيانات (Data Type) يحدد نوع المعلومات التي يمكن أن يخزنها مثل الأعداد الصحيحة، الأعداد العشرية، النصوص، وغيرها. يعد استخدام المتغيرات أمراً جوهرياً لأن معظم البرمجيات تعتمد على حفظ ومعالجة البيانات المختلفة.
أنواع المتغيرات
-
المتغيرات الأولية (Primitive Variables): تخزن القيم المباشرة. من أشهر أنواعها:
-
intللأعداد الصحيحة. -
doubleللأعداد العشرية ذات الدقة العالية. -
charلتخزين الأحرف المفردة. -
booleanللقيم المنطقية (true/false).
-
-
المتغيرات المرجعية (Reference Variables): تخزن عنوان الكائن (Object) في الذاكرة وليس القيمة نفسها. مثال على ذلك هو الكائنات (Objects) والمصفوفات.
إعلان المتغيرات في جافا
يتم إعلان المتغيرات في جافا عبر تحديد نوع البيانات متبوعاً باسم المتغير، مثال:
javaint age;
double salary;
char grade;
boolean isActive;
يمكن أيضاً تهيئة المتغير عند الإعلان:
javaint age = 25;
double salary = 1500.75;
char grade = 'A';
boolean isActive = true;
قواعد تسمية المتغيرات
-
يجب أن تبدأ بحرف أو علامة _ أو $.
-
لا يمكن أن تبدأ برقم.
-
لا تُستخدم الكلمات المحجوزة (keywords) كلغة Java.
-
من الأفضل أن تكون الأسماء واضحة وتعبر عن الهدف منها.
المتغيرات في البرمجة كائنية التوجه
في البرمجة كائنية التوجه، يمكن أن تكون المتغيرات خاصة بالكائن (Instance Variables) أو مشتركة بين كل الكائنات (Static Variables). المتغيرات الخاصة تُعلن داخل الكلاس وتستخدم لتخزين بيانات الكائن، أما المتغيرات الثابتة فتستخدم لتخزين بيانات عامة ثابتة لكل الكائنات.
الجمل الشرطية في جافا
دور الجمل الشرطية
الجمل الشرطية تمكّن البرنامج من اتخاذ قرارات مختلفة بناءً على تحقق شروط معينة. تعتبر هذه الجمل من أهم أدوات التحكم في سير البرنامج.
أنواع الجمل الشرطية في جافا
-
جملة if
تُستخدم لتنفيذ كود معين إذا تحقق شرط معين:
javaif (condition) {
// الكود الذي ينفذ إذا كان الشرط true
}
مثال:
javaint age = 18;
if (age >= 18) {
System.out.println("مؤهل للتصويت");
}
-
جملة if-else
تستخدم لتنفيذ كود في حالة تحقق الشرط وكود آخر إذا لم يتحقق:
javaif (condition) {
// ينفذ إذا كان الشرط true
} else {
// ينفذ إذا كان الشرط false
}
مثال:
javaint grade = 75;
if (grade >= 60) {
System.out.println("ناجح");
} else {
System.out.println("راسب");
}
-
جملة else-if
تسمح بفحص عدة شروط على التوالي:
javaif (condition1) {
// تنفيذ الكود عند تحقق الشرط الأول
} else if (condition2) {
// تنفيذ الكود عند تحقق الشرط الثاني
} else {
// تنفيذ الكود إذا لم يتحقق أي شرط
}
-
جملة switch
تستخدم عند الحاجة إلى مقارنة متغير بعدة قيم مختلفة، وهي أكثر وضوحًا وأسهل عند التعامل مع الكثير من الشروط المتعددة:
javaswitch (variable) {
case value1:
// كود
break;
case value2:
// كود
break;
default:
// كود افتراضي
}
مثال:
javachar grade = 'B';
switch (grade) {
case 'A':
System.out.println("ممتاز");
break;
case 'B':
System.out.println("جيد جدًا");
break;
case 'C':
System.out.println("جيد");
break;
default:
System.out.println("درجة غير معروفة");
}
شروط التعبيرات الشرطية
تعتمد جافا على التعبيرات المنطقية التي ترجع قيم true أو false للتحكم في تدفق التنفيذ. يمكن استخدام العمليات التالية:
-
المقارنات:
==,!=,<,>,<=,>= -
العمليات المنطقية:
&&(و)،||(أو)،!(نفي)
الحلقات في جافا
مفهوم الحلقات
الحلقات تستخدم لتنفيذ جزء من الكود بشكل متكرر طالما تحقق شرط معين. الحلقات تعتبر أداة فعالة لتكرار العمليات دون الحاجة لكتابة نفس الكود مرات عدة.
أنواع الحلقات الأساسية في جافا
-
حلقات for
تُستخدم عندما يكون عدد التكرارات معروفًا مسبقًا. تتكون جملة الحلقة من ثلاثة أجزاء: التهيئة، الشرط، والتحديث.
javafor (initialization; condition; update) {
// الكود الذي ينفذ في كل دورة
}
مثال:
javafor (int i = 0; i < 5; i++) {
System.out.println("العدد: " + i);
}
-
حلقات while
تستخدم عندما لا يكون عدد التكرارات معروفًا مسبقًا ويتم التكرار طالما الشرط صحيح.
javawhile (condition) {
// الكود الذي ينفذ طالما الشرط true
}
مثال:
javaint i = 0;
while (i < 5) {
System.out.println("العدد: " + i);
i++;
}
-
حلقات do-while
تشبه حلقة while لكنها تضمن تنفيذ الكود مرة واحدة على الأقل قبل فحص الشرط.
javado {
// الكود الذي ينفذ مرة واحدة على الأقل
} while (condition);
مثال:
javaint i = 0;
do {
System.out.println("العدد: " + i);
i++;
} while (i < 5);
استخدام الحلقات مع الجمل الشرطية
يمكن دمج الحلقات مع الجمل الشرطية لتنفيذ عمليات معقدة ومتغيرة حسب بيانات الإدخال أو ظروف البرنامج، مما يجعل البرمجة أكثر مرونة وقوة.
دمج المتغيرات، الجمل الشرطية، والحلقات في البرمجة كائنية التوجه
في البرمجة كائنية التوجه بلغة جافا، يتم تعريف المتغيرات داخل الكائنات لتعكس حالتها، ويُستخدم التحكم في التدفق بواسطة الجمل الشرطية والحلقات لتنفيذ سلوكيات مختلفة بناءً على حالة هذه المتغيرات.
على سبيل المثال، عند تصميم كائن يمثل حسابًا مصرفيًا، يمكن تعريف متغير لتخزين الرصيد، واستخدام جمل شرطية للتحقق مما إذا كان الرصيد كافيًا للسحب، واستخدام الحلقات لتنفيذ عمليات متكررة مثل حساب الفوائد شهريًا.
مثال عملي متكامل
javapublic class BankAccount {
private double balance; // متغير يمثل رصيد الحساب
public BankAccount(double initialBalance) {
this.balance = initialBalance;
}
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
System.out.println("تم إيداع: " + amount);
} else {
System.out.println("مبلغ الإيداع غير صالح");
}
}
public void withdraw(double amount) {
if (amount > 0) {
if (balance >= amount) {
balance -= amount;
System.out.println("تم السحب: " + amount);
} else {
System.out.println("الرصيد غير كافٍ");
}
} else {
System.out.println("مبلغ السحب غير صالح");
}
}
public void applyMonthlyInterest(double rate, int months) {
int count = 0;
while (count < months) {
balance += balance * rate;
count++;
}
System.out.println("الرصيد بعد الفائدة: " + balance);
}
public double getBalance() {
return balance;
}
public static void main(String[] args) {
BankAccount myAccount = new BankAccount(1000);
myAccount.deposit(500);
myAccount.withdraw(200);
myAccount.applyMonthlyInterest(0.01, 6);
System.out.println("الرصيد النهائي: " + myAccount.getBalance());
}
}
في هذا المثال، تم استخدام:
-
المتغير
balanceلتخزين الرصيد. -
الجمل الشرطية لفحص صحة العمليات (الإيداع والسحب).
-
حلقة
whileلتطبيق الفائدة على مدى أشهر متعددة.
جدول يوضح الفرق بين أنواع الحلقات الأساسية في جافا
| نوع الحلقة | متى تستخدم | الهيكل الأساسي | الفرق الرئيسي |
|---|---|---|---|
for |
عند معرفة عدد التكرارات مسبقًا | for (init; condition; update) { // code } |
يُحدد عدد التكرار من البداية |
while |
عند عدم معرفة عدد التكرارات | while (condition) { // code } |
الشرط يُفحص قبل التنفيذ |
do-while |
عند الحاجة لتنفيذ الكود مرة واحدة على الأقل | do { // code } while (condition); |
الشرط يُفحص بعد التنفيذ |
الخاتمة
تُعد المتغيرات، الجمل الشرطية، والحلقات حجر الأساس في أي لغة برمجة، ولا سيما في جافا التي تدعم البرمجة كائنية التوجه. فهم هذه المفاهيم بشكل عميق يُمكن المبرمج من بناء برامج منظمة، فعالة، وقابلة للتوسع. من خلال دمج هذه الأدوات داخل تصميم الكائنات، يمكن تحقيق برامج أكثر ديناميكية ومرونة في التعامل مع البيانات المختلفة والعمليات المتنوعة التي تطلبها التطبيقات الحديثة.
المراجع
-
"Java: The Complete Reference" - Herbert Schildt
-
Oracle Java Documentation - https://docs.oracle.com/javase/tutorial/java/concepts/

