الفئات والكائنات في جافا

الفئات والكائنات في جافا

تشكل الفئات والكائنات في Java أساس البرمجة كائنية التوجه (OOP). إنها تساعد في تصميم كيانات العالم الحقيقي وتنظيم التعليمات البرمجية بطريقة منظمة.

  • الفئة عبارة عن مخطط يستخدم لإنشاء كائنات تشترك في خصائص وسلوكيات مشتركة.
  • الكائن هو مثيل لفئة. إنه يمثل كيانًا محددًا تم إنشاؤه من قالب الفصل الدراسي.

على سبيل المثال، الكلب هو فئة تومي هو كائن من تلك الفئة.

Class_Object_exampleالفئات والكائنات (هنا الكلب هو الفصل وبوبي هو الكائن)

فئة جافا

الفصل عبارة عن مخطط يحدد البيانات والسلوك للكائنات. يقوم بتجميع المجالات والأساليب ذات الصلة في وحدة واحدة. يتم تخصيص الذاكرة لأعضائها فقط عند إنشاء كائن.

  • يعمل كقالب لإنشاء كائنات ذات بنية مشتركة.
  • لا يشغل الذاكرة للحقول حتى إنشاء مثيل لها.
  • يمكن أن تحتوي على منشئي أساليب الحقول وفئات وواجهات متداخلة.
Java
   class   Student     {      int     id  ;      String     n  ;      public     Student  (  int     id       String     n  )     {      this  .  id     =     id  ;      this  .  n     =     n  ;      }   }   public     class   Main     {      public     static     void     main  (  String  []     args  )     {      Student     s1     =     new     Student  (  10       'Alice'  );      System  .  out  .  println  (  s1  .  id  );      System  .  out  .  println  (  s1  .  n  );      }   }   

الإخراج
10 Alice  

كائنات جافا

الكائن هو مثيل لفئة تم إنشاؤها للوصول إلى بياناتها وعملياتها. كل كائن يحمل حالته الخاصة.

  • ولاية : القيم المخزنة في الحقول.
  • سلوك : الإجراءات المحددة من خلال الأساليب.
  • هوية : يميز كائن عن آخر.

تعكس الكائنات عناصر العالم الحقيقي مثل منتج العميل أو الدائرة. يتم تخزين الكائنات غير البدائية في الكومة بينما تظل مراجعها في المكدس.

الكائنات في جافاكائنات Java (مثال للكلاب)

إنشاء مثيل الكائن

يُعرف إنشاء كائن باسم إنشاء مثيل. تشترك جميع مثيلات الفئة في البنية والسلوك أثناء تخزين قيم حالة مختلفة.

الإعلان عن الكائنات في جافاإعلان كائن جافا

تصريح:

الكلب طوفي.

هذا يعلن مرجعا فقط. لم يتم إنشاء الكائن ويظل المرجع فارغًا.

التهيئة:

tuffy = new Dog('Tuffy' 'Papillon' 5 'White');

الفئات والكائنات في جافا 3-768التهيئة

يقوم المشغل الجديد بتخصيص الذاكرة واستدعاء المنشئ.

مثال: تعريف الفصل واستخدامه

Java
   public     class   Dog     {      String     name  ;      String     breed  ;      int     age  ;      String     color  ;      public     Dog  (  String     name       String     breed       int     age       String     color  )     {      this  .  name     =     name  ;      this  .  breed     =     breed  ;      this  .  age     =     age  ;      this  .  color     =     color  ;      }      public     String     getName  ()     {     return     name  ;     }      public     String     getBreed  ()     {     return     breed  ;     }      public     int     getAge  ()     {     return     age  ;     }      public     String     getColor  ()     {     return     color  ;     }      @Override      public     String     toString  ()     {      return     'Name is: '     +     name      +     'nBreed age and color are: '      +     breed     +     ' '     +     age     +     ' '     +     color  ;      }      public     static     void     main  (  String  []     args  )     {      Dog     tuffy     =     new     Dog  (  'tuffy'       'papillon'       5       'white'  );      System  .  out  .  println  (  tuffy  );      }   }   

الإخراج
Name is: tuffy Breed age and color are: papillon 5 white  

ملحوظة: كل فئة لديها منشئ واحد على الأقل. إذا لم يتم تعريف أي شيء، توفر Java مُنشئًا افتراضيًا بدون وسيطة يستدعي المُنشئ الأصلي.

تهيئة الكائن باستخدام الطريقة/الوظيفة

Java
   public     class   Geeks     {      static     String     name  ;      static     float     price  ;      static     void     set  (  String     n       float     p  )     {      name     =     n  ;      price     =     p  ;      }      static     void     get  ()     {      System  .  out  .  println  (  'Software name is: '     +     name  );      System  .  out  .  println  (  'Software price is: '     +     price  );      }      public     static     void     main  (  String  []     args  )     {      Geeks  .  set  (  'Visual Studio'       0.0f  );      Geeks  .  get  ();      }   }   

الإخراج
Software name is: Visual Studio Software price is: 0.0  

طرق إنشاء كائن في جافا

تدعم Java أربعة أساليب قياسية.

1. استخدام كلمة رئيسية جديدة

الطريقة الأكثر مباشرة لإنشاء كائن.

Java
   // creating object of class Test    Test     t     =     new     Test  ();   

2. استخدام التأمل

يستخدم لتحميل الفئة الديناميكية كما هو موضح في أطر عمل مثل Spring.

Java
   class   Student     {      public     Student  ()     {}   }   public     class   Main     {      public     static     void     main  (  String  []     args  )     {      try     {      Class        c     =     Class  .  forName  (  'Student'  );      Student     s     =     (  Student  )     c  .  getDeclaredConstructor  ().  newInstance  ();      System  .  out  .  println  (  s  );      }     catch     (  Exception     e  )     {      e  .  printStackTrace  ();      }      }   }   

الإخراج
Student@1dbd16a6  

3. استخدام طريقة الاستنساخ ().

clone() ينشئ نسخة من كائن موجود. يجب أن يقوم الفصل بتنفيذ Cloneable.

Java
   class   Geeks     implements     Cloneable     {      String     name     =     'GeeksForGeeks'  ;      @Override      protected     Object     clone  ()     throws     CloneNotSupportedException     {      return     super  .  clone  ();      }      public     static     void     main  (  String  []     args  )     {      try     {      Geeks     g1     =     new     Geeks  ();      Geeks     g2     =     (  Geeks  )     g1  .  clone  ();      System  .  out  .  println  (  g2  .  name  );      }     catch     (  Exception     e  )     {      e  .  printStackTrace  ();      }      }   }   

الإخراج
GeeksForGeeks  

4. استخدام إلغاء التسلسل

إلغاء التسلسل هو أسلوب لقراءة كائن من الحالة المحفوظة في ملف. يتم إعادة إنشاء الكائن من دفق البايت المخزن.

الرجوع إلى التسلسل/إلغاء التسلسل في Java .

Java
   import     java.io.*  ;   class   Student     implements     Serializable     {      private     String     name  ;      public     Student  (  String     name  )     {     this  .  name     =     name  ;     }      public     String     toString  ()     {     return     'Student: '     +     name  ;     }   }   public     class   Main     {      public     static     void     main  (  String  []     args  )     {      try     (  ObjectOutputStream     out     =      new     ObjectOutputStream  (  new     FileOutputStream  (  'student.ser'  )))     {      out  .  writeObject  (  new     Student  (  'Alice'  ));      }     catch     (  IOException     e  )     {     e  .  printStackTrace  ();     }      try     (  ObjectInputStream     in     =      new     ObjectInputStream  (  new     FileInputStream  (  'student.ser'  )))     {      Student     s     =     (  Student  )     in  .  readObject  ();      System  .  out  .  println  (  s  );      }     catch     (  Exception     e  )     {     e  .  printStackTrace  ();     }      }   }   

الإخراج
Student: Alice  

يمكن لمرجع واحد أن يشير إلى كائنات مختلفة في أوقات مختلفة.

Java
   Test     test     =     new     Test  ();   test     =     new     Test  ();   

من الشائع في الميراث استخدام مرجع أصل للكائنات التابعة.

Java
   Animal     obj     =     new     Dog  ();   obj     =     new     Cat  ();   

تصبح الكائنات غير المرجعية مؤهلة لجمع البيانات المهملة.

كائنات مجهولة

يتم إنشاء الكائنات المجهولة بدون مرجع واستخدامها على الفور لعمليات لمرة واحدة.

  • لا يوجد متغير مرجعي: لا يمكن إعادة استخدام الكائن.
  • يتم إنشاؤها واستخدامها على الفور لحفظ الذاكرة للمهام قصيرة العمر.
  • شائع في التعامل مع الأحداث (مثل النقرات على الأزرار).
Java
   new     Dog  (  'Max'       'Labrador'       3       'Black'  ).  getName  ();   

شائع في التعامل مع أحداث واجهة المستخدم.

إنشاء اختبار