الوحدة 2: أساسيات البرمجة الشيئية · الموضوع 2 من 17
الموضوع 2

مقدمة إلى البرمجة الشيئية: الكلاس والكائن

أسلوب يجعل البرنامج قريبًا من الواقع: نصف «نوع الشيء» مرة واحدة في كلاس، ثم ننشئ منه نسخًا كثيرة هي الكائنات.

class Carcolor type model yearstart() stop() new Car1: Green ToyotaCar2: Blue Hyundai
بعد هذا الدرس ستستطيع أن:
  • تعرّف البرمجة الشيئية OOP، وتميّز بين الكلاس class والكائن object بمثال من الواقع.
  • تحدد خصائص attributes الكلاس وأفعاله methods من وصف أو مخطط.
  • تُنشئ مشروعًا في NetBeans يحتوي كلاسًا رئيسيًّا Main وكلاسًا آخر.
  • تُنشئ كائنًا من كلاس باستخدام الكلمة new.

١البرمجة الشيئية OOP

Object Oriented Programming، وتُسمّى البرمجة الكائنية أو كائنية التوجّه: نمط برمجة يعتمد على الكائنات والفئات لتنظيم الكود. ولغة جافا ترتكز على هذا الأسلوب.

الكلاس Classالكائن Object
التعريفتمثيل شامل لنوع معين؛ قالب أو مخطط blueprintنسخة من الكلاس
فيهالخصائص والأفعال المشتركةقيم خاصة بهذه النسخة
العددكلاس واحدكائنات كثيرة منشأة منه

٢مثال: المنزل

class House house1house2house3
المخطط الهندسي (الكلاس) واحد، والمنازل المبنية منه (الكائنات) كثيرة؛ تشترك في التصميم وتختلف في القيم كاللون.

٣مثال: السيارة

لو قلنا «لدينا سيارة» فنحن نتحدث عن صنف السيارات عمومًا. ولو قلنا «سيارة كامري 2022 ستاندرد بيضاء» فنحن نتحدث عن نسخة محددة. فالسيارة كلاس، والكامري 2022 كائن منه.

instanceOfinstanceOfCar~ color : String~ type : String~ model : String~ year : int~ start() : void~ accelerate() : void~ stop() : voidCar1 : Carcolor = "Green"type = "Toyota"model = "024X"year = 2022Car2 : Carcolor = "Blue"type = "Hyundai"model = "Fe SEL 2.0T AWD"year = 2021
🧩 في مخطط UML بالأعلى: الكلاس Car (القالب) فيه الخصائص Color و Type و Model و YEAR، والأفعال Start و Accelerate و Stop. وكل كائن نسخة منه بقيم خاصة به.
+ public- private# protected~ defaultمسطّر: staticمائل: abstract

٤الخصائص والأفعال

الخصائصattributes | Fields | Data members
تُمثَّل بالمتغيرات variables
الأفعالmethods
تُمثَّل بالدوال (الطرق)

فيتكوّن الكلاس من variables و methods. والكلاس هو العمود الفقري في جافا: كل شيء تقريبًا يُكتب داخله.

٥إنشاء المشروع والكلاس الرئيسي

  1. من القائمة: File‏ ← ‏New Project‏ ← ‏Java with Ant‏ ← ‏Java Application‏ ← ‏Next.
  2. اكتب اسم المشروع في Project Name: Library.
  3. تأكد من تفعيل Create Main Class واكتب: library.Main (اسم الحزمة library ثم نقطة ثم اسم الكلاس Main)، ثم اضغط Finish.
نافذة إنشاء مشروع جديد في NetBeans
نافذة New Java Application: اسم المشروع Library، والكلاس الرئيسي library.Main

٦إنشاء أكثر من كلاس في المشروع

يمكن أن يحتوي المشروع كلاسات متعددة: كلاس Main فيه الدالة main ومنه تُنشأ الكائنات، وكلاس منفصل لتعريف الكتاب Book. لإضافة الكلاس Book:

  1. في نافذة Projects انقر بالزر الأيمن على الحزمة library‏ ← ‏New‏ ← ‏Java Class.
قائمة إنشاء كلاس جديد في NetBeans
الزر الأيمن على الحزمة library‏ ← ‏New‏ ← ‏Java Class
  1. اكتب في Class Name: Book، وتأكد أن Package هي library، ثم اضغط Finish.
نافذة تسمية الكلاس الجديد
نافذة New Java Class: اسم الكلاس Book داخل الحزمة library
  1. صار في المشروع ملفان: Main.java و Book.java داخل الحزمة library.
مشروع Library في NetBeans وفيه كلاسان
المشروع Library بعد إضافة الكلاس: Main.java و Book.java
package library; public class Main {     public static void main(String[] args) {        Book bk1 = new Book();    }}
package library; public class Book { }
مخطط المشروع مستخرج من الكود. انقر على أي كلاس لفتح كوده.
MainBook
Main+ main(args : String[]) : voidBook

السطر Book bk1 = new Book(); ينشئ كائنًا اسمه bk1 من الكلاس Book بالكلمة new. سنملأ الكلاس بالخصائص والدوال في الدرس القادم.

تحدٍّ برمجي: كلاس السيارة

مبني على أمثلة الدرس

حوّل مخطط Car أعلاه إلى كود جافا.

المطلوب:
  • كلاس Car فيه الخصائص color و type و model و year.
  • ثلاث دوال: start و accelerate و stop، تطبع كل منها رسالة.
  • في Main أنشئ الكائنين Car1 و Car2 بقيم المخطط، واطبع نوع كل سيارة ثم استدعِ start للأولى.
Car.java
class Car{    // الخصائص     // الدوال} public class Main{    public static void main(String[] args)    {        // أنشئ Car1 و Car2    }}
Output – المطلوب×
Toyota
Hyundai
Toyota started
💡 تلميح 1
الخصائص متغيرات: String للنصوص و int للسنة.
💡 تلميح 2
أنشئ الكائن بـ new ثم أعطِ خصائصه قيمًا بالنقطة: car1.color = "Green";

حاول بنفسك أولًا.

Car.java
class Car{    String color;    String type;    String model;    int year;     void start()      { System.out.println(type + " started"); }    void accelerate() { System.out.println(type + " is accelerating"); }    void stop()       { System.out.println(type + " stopped"); }} public class Main{    public static void main(String[] args)    {        Car car1 = new Car();        car1.color = "Green";        car1.type = "Toyota";        car1.model = "024X";        car1.year = 2022;         Car car2 = new Car();        car2.color = "Blue";        car2.type = "Hyundai";        car2.model = "Fe SEL 2.0T AWD";        car2.year = 2021;         System.out.println(car1.type);        System.out.println(car2.type);        car1.start();    }}

توقّع وتحقّق

أجب قبل أن تنظر إلى الشرح. التصحيح فوري، وإجاباتك تُحفظ.

«سيارة كامري 2022 بيضاء» تمثّل:

الكلمة التي تنشئ كائنًا:

في مخطط UML، الجزء الأوسط من مستطيل الكلاس فيه:

الاسم المفضّل للكلاس الذي فيه الدالة main:

الخلاصة

انتقل إلى تقييم الدرسأسئلة التقييم، وأكمل الفراغات.ابدأ التقييم ←