الفئات والكائنات في جافا
تشكل الفئات والكائنات في Java أساس البرمجة كائنية التوجه (OOP). إنها تساعد في تصميم كيانات العالم الحقيقي وتنظيم التعليمات البرمجية بطريقة منظمة.
- الفئة عبارة عن مخطط يستخدم لإنشاء كائنات تشترك في خصائص وسلوكيات مشتركة.
- الكائن هو مثيل لفئة. إنه يمثل كيانًا محددًا تم إنشاؤه من قالب الفصل الدراسي.
على سبيل المثال، الكلب هو فئة تومي هو كائن من تلك الفئة.
الفئات والكائنات (هنا الكلب هو الفصل وبوبي هو الكائن) فئة جافا
الفصل عبارة عن مخطط يحدد البيانات والسلوك للكائنات. يقوم بتجميع المجالات والأساليب ذات الصلة في وحدة واحدة. يتم تخصيص الذاكرة لأعضائها فقط عند إنشاء كائن.
- يعمل كقالب لإنشاء كائنات ذات بنية مشتركة.
- لا يشغل الذاكرة للحقول حتى إنشاء مثيل لها.
- يمكن أن تحتوي على منشئي أساليب الحقول وفئات وواجهات متداخلة.
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');
التهيئة يقوم المشغل الجديد بتخصيص الذاكرة واستدعاء المنشئ.
مثال: تعريف الفصل واستخدامه
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 ();
تصبح الكائنات غير المرجعية مؤهلة لجمع البيانات المهملة.
كائنات مجهولة
يتم إنشاء الكائنات المجهولة بدون مرجع واستخدامها على الفور لعمليات لمرة واحدة.
- لا يوجد متغير مرجعي: لا يمكن إعادة استخدام الكائن.
- يتم إنشاؤها واستخدامها على الفور لحفظ الذاكرة للمهام قصيرة العمر.
- شائع في التعامل مع الأحداث (مثل النقرات على الأزرار).
new Dog ( 'Max' 'Labrador' 3 'Black' ). getName ();
شائع في التعامل مع أحداث واجهة المستخدم.
إنشاء اختبار