سلام در این آموزش شی گرایی یا OOP، الگو های برنامه نویسی، ایجاد کلاس و اشیاء یاد خواهید گرفت با نمونه کد. حتما تا انتها مطالعه فرمائید در صورت سوال می توانید در بخش نظرات ارسال کنید.

شی گرایی یا OOP چیست؟

OPP مخفف کلمه Object-Oriented Programming (برنامه نویسی شی گرا) می باشد و شی گرایی یک نوع الگو برنامه نویسی می باشد.

الگو برنامه نویسی چیست؟

ساده ترین تعریف الگوی برنامه نویسی میتواند این باشد که الگوی برنامه نویسی روش یا سبکی می باشد که باعث میشود برنامه نویسی بسیار ساده تر انجام شود.

سه تا از الگو ها را اینجا نام می بریم:

۱. Object Oriented Programming (برنامه نویسی شی گرا)

۲. Functional Programming (برنامه نویسی تابعه ای)

۳. Procedural Programming (برنامه نویسی رویه ای)

و غیره

مزایای OOP چیست؟

۱. اجرای OOP آسان و سریع تر است

۲. OOP یک ساختار واضح برای برنامه ایجاد می کند.

۳. OOP برای حفظ کد جاوا کمک می کند "جلوگیری از تکرار کد می شود" و نگهداری - اصلاح و اشکال زدایی کد را آسان تر می کند.

۴. OOP ایجاد برنامه کاربردی قابل استفاده مجدد کامل با کد کمتر و زمان توسعه کوتاه تر را ممکن می سازد.

Classes (کلاس ها)  و Objects (اشیاء) چیست؟

Classes (کلاس ها)  و Objects (اشیاء) دو جزء مهم object-oriented programming هستند.

برای مشاهده تفاوت کلاس و اشیاء به تصاویر زیر نگاه کنید:

objects

 (سیب) Apple

 (موز) ‌Banana

 (انبه) Mango

Class

(میوه) Fruit

مثالی دیگر:

objects

 ‌Benz

 BMW

Volvo

Class

(ماشین) Car

یک کلاس یک الگو (template)  برای اشیاء است و یک شی یک نمونه ای از یک کلاس است.

وقتی یک شی (Object) ایجاد می شود ، همه متغیرها و متدها را از کلاسی که ایجاد شده است به ارث می برد. (درصورتی که متوجه نمی شوید ایرادی ندارد در ادامه بهتر متوجه خواهید شد)

جاوا یک زبان برنامه نویسی شی گرا است.

همه چیز در جاوا با کلاس و اشیاء‌ در ارتباط است به علاوه با attributes (ویژگی ها)‌ و methods (طرز عمل کردن ها).

برای درک بهترattributes و methods به مثال زیر توجه فرمائید.

مثال: در زندگی واقعی یک ماشین یک شی است و ماشین attributes (ویژگی هایی) دارد مانند:‌ وزن، رنگ و methods (طرز عمل هایی)‌ دارد مانند:‌ راندن ماشین و ترمز کردن است.

یک کلاس مثل یک سازنده شیء است  یا یک "طرح یا پلن" (blueprint) برای ایجاد اشیاء است. (با نمونه کد ها در ادامه این مطلب بهتر درک می کنید ان شاء الله)

ایجاد یک کلاس:

ابتدا دوتا فایل جاوا با نام های Main.java و Cars.java ایجاد می کنیم.

برای ایجاد یک کلاس از کلمه کلیدی Class استفاده می کنیم.

Cars.java:

public class Cars {
    String Benz = "Benz", Bmw = "BMW", Volvo = "Volvo";
}

در کد بالا یک کلاس با نام Cars و سه متغیر با نام Benz, BMW و Volvo نوع String (رشته) ایجاد کردیم.

توجه داشته باشید حتما نام Class باید با حروف بزرگ شروع بشود و با نام فایل جاوا باید مطابقت داشته باشند.

مثلا اگر نام فایل شما Cars است نام کلاس شما هم باید Cars باشد.

ایجاد یک شی: 

در جاوا یک object (شی) از یک Class (کلاس) ایجاد می شود. ما یک کلاس با نام Cars ایجاد کرده ایم. حال باید یک شی از کلاس Cars در فایل Main.java ایجاد کنیم و قصد داریم نام ماشین ها را چاپ بکنیم.

Main.java:

public class Main {
    public static void main(String[] args) {
        Cars ObjCars = new Cars (); // می باشد Cars یک شی ساخته شده از کلاس ObjCars
        System.out.println ( ObjCars.Benz ); //print Benz
        System.out.println ( ObjCars.Bmw ); //print BMW
        System.out.println ( ObjCars.Volvo ); //print Volvo
    }
}

برای درک بهتر برای ایجاد یک شی به تصویر زیر دقت فرمائید:

ما می توانیم چندین شی از یک کلاس بسازیم:

کلاسی مانند کلاس قبل با نام Cars داریم.

Main.java:

public class Main {
    public static void main(String[] args) {
        Cars ObjCars1 = new Cars (); // می باشد Cars یک شی ساخته شده از کلاس ObjCars1
        Cars ObjCars2 = new Cars (); // می باشد Cars یک شی ساخته شده از کلاس ObjCars2
        Cars ObjCars3 = new Cars (); // می باشد Cars یک شی ساخته شده از کلاس ObjCars3
        System.out.println ( ObjCars1.Benz ); //print Benz
        System.out.println ( ObjCars2.Bmw ); //print BMW
        System.out.println ( ObjCars3.Volvo ); //print Volvo
    }
}

درمثال بعدی ایجاد کلاس و اشیاء و فقط در فایل Cars.java ایجاد خواهیم کرد:

در مثال قبل کلاس و اشیاء را در دوتا فایل با نام های Main.java و Cars.Java ایجاد کرده بودیم. اما در این بخش فقط از فایل cars.java استفاده می کنیم.

Cars.java:

public class Cars {
   String Benz = "Benz", Bmw = "BMW", Volvo = "Volvo";

    public static void main(String[] args) {
        Cars ObjCars1 = new Cars (); // می باشد Cars یک شی ساخته شده از کلاس ObjCars1
        Cars ObjCars2 = new Cars (); // می باشد Cars یک شی ساخته شده از کلاس ObjCars2
        Cars ObjCars3 = new Cars (); // می باشد Cars یک شی ساخته شده از کلاس ObjCars3
        System.out.println ( ObjCars1.Benz ); //print Benz
        System.out.println ( ObjCars2.Bmw ); //print BMW
        System.out.println ( ObjCars3.Volvo ); //print Volvo
    }
}

جالب است بدانید متغیر های ماشین که مقدار دهی نام ماشین ها می باشد ویژگی های (Attributes) کلاس محسوب می شوند در آموزش بعدی بیشتر در این مورد توضیح خواهیم داد

منابع:

۱. ?Java - What is OOP

۲. الگوهای برنامه نویسی مجید دهنمکی

3. Java Classes and Objects