83 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| title: Classes and Objects
 | |
| localeTitle: الطبقات والكائنات
 | |
| ---
 | |
| # الطبقات والكائنات
 | |
| 
 | |
| الفصول هي مجموعات من المتغيرات والعمليات عليها. يمكن أن يكون للفئة متغيرات ، أو طرق (أو وظائف) ، أو منشئات (أو طرق يتم استخدامها للبدء ، أكثر من ذلك لاحقًا!).
 | |
| 
 | |
| قد تحتوي الفئة على أي من أنواع المتغيرات التالية.
 | |
| 
 | |
| *   متغيرات الفئة: هي المتغيرات التي يتم تعريفها داخل تعريف الفئة ، خارج أي أسلوب ، باستخدام الكلمة الأساسية الثابتة. يتم مشاركة متغير فئة عبر كافة مثيلات الفئة. تُعرف متغيرات الصنف أيضًا باسم المتغيرات الساكنة ، حيث يتم إدخالها مرة واحدة فقط في وقت تجميع المجموعة ، ومن ثم تكون نسخة واحدة فقط متاحة لجميع الحالات.
 | |
| *   متغيرات المثيل: الاختلاف مع متغيرات الفئة هو أن متغيرات الحالة تتم تهيئتها داخل مُنشئ الفئة ولا يتم مشاركتها عبر جميع الكائنات. في وقت إنشاء مثيل ، يتم إنشاء نسخة جديدة من متغير المثيل.
 | |
| 
 | |
|  `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()); 
 | |
| ` 
 | |
| 
 | |
|  [تشغيل الكود](https://repl.it/CJZP/0)
 | |
| 
 | |
| لذا ، `Car` هي فئة ، والتي تحتوي على حقول أو `name` خصائص و `manufacturerName` . `modelS` هو كائن من فئة `Car` . لذلك ، `modelS` أيضًا `modelS` على نفس الخصائص والأساليب.
 | |
| 
 | |
| من المعيار إلى حد كبير ضمان "معلومات" الكائن ، في هذه الحالة `name` المتغيرات `manufacturerName` ، لتكون خاصة ويتم الوصول إليها فقط عن طريق هذه الحاصدين والمستأجرين. هذا يمنع مشكلة في التعليمات البرمجية التصحيح التي تتضمن المتغيرات عضو الكائن. إذا تم الإعلان عن المتغيرات الخاصة بالأعضاء ، ولأي سبب تعطل البرنامج ، يمكنك الحصول على تتبع مكدس معقدة نوعًا ما قد يصعب الإشارة إلى الخطأ. إن تبقي المتغيرات الخاصة ، ولا يمكن الوصول إليها إلا عن طريق الحاصلين على الجوائز والمستأجرين ، سوف تبسط رسالة الخطأ هذه. |