‎الكائنات والكلاسات هي احد المفاهيم (التقنيات) المستخدمة في منهجية البرمجة غرضية التوج‎ ‏ ‏Classes ‎and Objects

#Objects
&

#Classes

الكائنات

&

 الكلاسات 

    

 هي احد المفاهيم (التقنيات) المستخدمة في منهجية البرمجة غرضية التوجه OOP لذا سنتعلم تصميم برنامج يستخدم الكائنات والكلاسات ولكن قبل ذلك يجب ان نعرف :
– ما هو الكائن ( object ) ؟  

1. الكائن Object :
تعريف العام : الكائن هو أي شي له خصائص وله فعل .
امثلة :– الكمبيوتر عبارة عن شيء له خصائصه وله افعال .
– الانسان نفسه عبارة عن شيء له خصائصه وله افعاله.
– السيارة عبارة عن شيء لها خصائص ولها افعال .

تعريف برمجي : عبارة عن شيء entity له خصائص attributes وله أفعال behavior .
entity : شيء ما
attributes : خصائص هذا الشيء
behavior :  فعل او تصرف هذا الشيء

خصائص الكائن بالبرمجة : 1- Attributes :
خصائص الكائن يتم تمثيلها بالمتغيرات .
2- Behavior: 
تصرفات الكائن يتم تمثيلها بالدوال الميثود.
3- identity: Object identity is typically implemented via a unique ID. The value of the ID is not visible to the external user.

مثال : القلم لونه أحمر ونستخدمه للكتابة 
* القلم هو الـ object
* اللون الأحمر هي الـ attribute
* الكتابة هي الـ behavior

2- ما هو الكلاس ( class)  ؟  الكلاس Class :عبارة عن templete قالب (وعاء) يحتوي على متغيرات ودوال. 

يحتوي الكلاس على : – data member المتغيرات
– method الدوال
– constructor دالة خاصة تشرح لاحقا
– block هي الاقواس { }  

الشكل للعام لكتابة الكلاس :

class <class_name>{  
    data member;  
    method;  
}

ملاحظة مهمه :

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

مثال بسيط عن الكائن والكلاس :
1- الان في هذا الجزء سوف نقوم بإنشاء كلاس اسمه Student يحتوي على متغيرين id و name ودالة التشغيل main وتعتبر من الدوال لكنها اساسية لتشغيل البرنامج
class Student{  
 int id;         //data member
 String name;     //data member  
  
 public static void main(String args[] ){  
  
 }  
}
2- الان سنقوم بإنشاء الكائن بواسطة الكلمة المحجوزه new
class Student{  
 int id;    //data member
 String name;     //data member  
  
 public static void main(String args[] ){  
  Student s1=new Student();   //انشاء الكائن 
 }  
}
ملاحظة :
Student s1=new Student();
هذا السطر هي طريقة انشاء الكائن وسميناه s1 وراح ينسخ كل الاشياء الموجوده بالكلاس لاننا قلنا سابقا ان الكائن ليس الا نسخه من الكلاس الخام ولاحظ ايضا اسم Student لازم يكون نفس اسم الكلاس عشان يصبح نسخه من كلاسنا وهذه النسخه كما قلنا لها اسم s1
3- الان في هذا الجزء سنقوم بطباعة المتغيرين id و name من خلال استدعائها بواسطة اسم الكائن s1 ويستطيع استدعائها لانه صار نسخه من الكلاس يعني له الامكانيه برؤية كل شي بالكلاس…….

class Student{  
 int id;    //data member
 String name;     //data member  
  
 public static void main(String args[ ] ){ 
 
  Student s1=new Student();
  console.writeline(s1.id);  
  console.writeline(s1.name);

 }  
}
المخرجات قيم افتراضيه وراح تكون كالتالي : 
0
null
والسبب لاننا لما عرفنا المتغيرات بالكلاس ولم نعطي له اي قيمه فقط عرفنا متغيرات بدون اسناد قيم لها .
5 – الان احط قيم لمتغيراتي الموجوده بالكلاس من خلال كل الكائنات اللي سويناها ولكل كائن على حده استطيع اعطاء قيم مستقله للمتغيرات ومن ثم لا انسى اطبعهم كالتالي :
النسخة الاولى من الكلاس 
Student s1=new Student();
s1.id = 369;
s1.name = “Aasam”;
console.writeline(s1.id);
console.writeline(s1.name);

النسخة الثانية من الكلاس
Student s2=new Student();
s2.id = 369;
s2.name = “wasam”;
console.writeline (s2.id); 
console.writeline (s2.name);  
ختاما الان اتضح لنا فائدة الكلاسات و الكائنات مجرد خصصنا كلاس وسوينا منه كائنات كثير باسطر قليله 
بدل اني اكتب كلاس كامل لكل Student……
إ₰…👨🏻‍💻CODE👩🏻‍💻…₰❥
انشاء قائمة <>list من نوع نصي ونضع بها اسماء الخلفاء الراشدين رضوان الله عليهم 
من ثم يتم طباعتهم بالاعتماد على عبارات لامدا كما في الكود التالي…
using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;

namespace CSharp
{
    class Ambuiaa
    { 
      static void Main(string[] args) 
       { 
      List<String> Alkholafaa = new List<string> 
      { “Abu bakr”, “Omar”, “Ali”, “Othman” }; 
        Console.WriteLine(“Alkholafaa arrachidoun are :n”); 
          Alkholafaa.ForEach(Item => 
           { 
          Console.WriteLine(“t-” + Item); 
           }); 
        Console.Read(); 
        } 
    }   
}

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•


إ₰…Output….₰❥

Alkholafaa arrachidoun are :

 -Abu bakr
 -Omar
 -Ali
 -Othman

إ₰…👨🏻‍💻CODE👩🏻‍💻…₰❥
#التحكم_باستخدام  try & catch 
 تخبر #C أن يحاول بالكود المرفق بين أقواس try
فإذا وجد خطأ من النوع المعرف داخل أقواس catch
يقوم بما هو داخل أقواسها
وأخيرا عند الخروج من catch & try سينفذ البرنامج محتويات finally 
سواًء كان هناك خطأ أم لم يكن….
#كود تكرار المحاولة لادخال اعداد فقط حتى عدم حصول الخطأ :- 
using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;

namespace CSharp
{

    public static class Program 
    {
        public static void Main() 
        {
         
         int x;
            int s = 1;
            a:
            Console.Write(“Enter Number only :”);
            try
            {
             x = Convert.ToInt32(Console.ReadLine());
            }
            catch
           {
             goto a;
           }
            finally
           {
            Console.WriteLine(“try ” + s);
             s += 1;
           }
            Console.WriteLine(“b Done!”);
            Console.ReadKey();
           
        }
    }
}

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•


إ₰…Output….₰❥

Enter Number only :N
try 1
Enter Number only :A!!
try 2
Enter Number only :22
  Done!

*–*–*–*–*–*–*–*–*–*–*–*–*
بإمكانك استخدام أكثر من catch لرصد أكثر من نوع خطأ
وكذالك بإمكانك أيضا عدم استخدام finally بتاتآ….

Leave a Comment

Your email address will not be published. Required fields are marked *