freeCodeCamp/guide/arabic/java/classes-and-objects/index.md

4.9 KiB

title localeTitle
Classes and Objects الطبقات والكائنات

الطبقات والكائنات

الفصول هي مجموعات من المتغيرات والعمليات عليها. يمكن أن يكون للفئة متغيرات ، أو طرق (أو وظائف) ، أو منشئات (أو طرق يتم استخدامها للبدء ، أكثر من ذلك لاحقًا!).

قد تحتوي الفئة على أي من أنواع المتغيرات التالية.

  • متغيرات الفئة: هي المتغيرات التي يتم تعريفها داخل تعريف الفئة ، خارج أي أسلوب ، باستخدام الكلمة الأساسية الثابتة. يتم مشاركة متغير فئة عبر كافة مثيلات الفئة. تُعرف متغيرات الصنف أيضًا باسم المتغيرات الساكنة ، حيث يتم إدخالها مرة واحدة فقط في وقت تجميع المجموعة ، ومن ثم تكون نسخة واحدة فقط متاحة لجميع الحالات.
  • متغيرات المثيل: الاختلاف مع متغيرات الفئة هو أن متغيرات الحالة تتم تهيئتها داخل مُنشئ الفئة ولا يتم مشاركتها عبر جميع الكائنات. في وقت إنشاء مثيل ، يتم إنشاء نسخة جديدة من متغير المثيل.

`public class Example {

private static int myVar = 1; // Class Variable 

private int mySecondVar; // Instance Variable 
Example(int mySecondVar) { 
        this.mySecondVar = mySecondVar; // An instance variable must be initialized inside the constructor 

`

فكر في Class كمخطط لإنشاء شيء ملموس. A Class يخبرك كيف 'ما' و 'كيف' ل object قال من الدرجة سيبدو مرة واحدة instantiated . في جوهرها ، فإنه يحدد properties (مثل اللون ، سعة المحرك) behavior (توقف ، تسريع ، تغيير التروس ، والسمك إلخ) لسيارة في الحالة أدناه.

الكائنات هي أمثلة لفئة. جميع الكائنات هي أمثلة لفئة معينة. تخيل أن يكون الصف "قالبًا" ، والذي منه ينسخ كل كائن. عندما تقوم بإنشاء كائن ، فإنها تقوم بشكل أساسي بإنشاء كائن جديد في مخطط الفصل. الآن دعونا ننظر إلى هذا في جزء صغير من التعليمات البرمجية:

`// Car class public class Car { // car name private String name;

// car manufacturer name 
private String manufacturerName; 

// constructor 1 
public Car() { 
} 

// constructor 2 
public Car(String name, String man) { 
    this.name = name; 
    this.manufacturerName = man; 
} 

// getter name method 
public String getName() { 
    return name; 
} 

// getter manufacture method 
public String getManufacturerName() { 
    return manufacturerName; 
} 

//setter name method 
public void setName(String name){ 
    this.name = name; 
} 

//setter manufacture method 
public void setManufacture(String man){ 
    this.manufacturerName = man; 
} 

}

// sample code

Car modelS = new Car("Model S","Tesla"); // prints Tesla Model S System.out.println("Full Car Model S= " + modelS.getManufacturerName() + " : " + modelS.getName());

Car modelX = new Car(); modelX.setName("Model X"); modelX.setManufacture("BMW"); // prints Tesla Model X System.out.println("Full Car Model X= " + modelX.getManufacturerName() + " : " + modelX.getName()); `

:rocket: تشغيل الكود

لذا ، Car هي فئة ، والتي تحتوي على حقول أو name خصائص و manufacturerName . modelS هو كائن من فئة Car . لذلك ، modelS أيضًا modelS على نفس الخصائص والأساليب.

من المعيار إلى حد كبير ضمان "معلومات" الكائن ، في هذه الحالة name المتغيرات manufacturerName ، لتكون خاصة ويتم الوصول إليها فقط عن طريق هذه الحاصدين والمستأجرين. هذا يمنع مشكلة في التعليمات البرمجية التصحيح التي تتضمن المتغيرات عضو الكائن. إذا تم الإعلان عن المتغيرات الخاصة بالأعضاء ، ولأي سبب تعطل البرنامج ، يمكنك الحصول على تتبع مكدس معقدة نوعًا ما قد يصعب الإشارة إلى الخطأ. إن تبقي المتغيرات الخاصة ، ولا يمكن الوصول إليها إلا عن طريق الحاصلين على الجوائز والمستأجرين ، سوف تبسط رسالة الخطأ هذه.