EN

Search
Close this search box.

موستانگ، وحشیِ دوست داشتنی

اشیا در جاوا

ضمن عرض سلام و ادب خدمت شما کاربران سایت موستانگ ، در این درس قصد داریم تا شما را با اشیا در جاوا آشنا کنیم. همه چیز در جاوا درون اشیا و کلاس ها قرار دارد. در واقع کلاس الگویی است که برنامه نویس تعریف می کند و از روی آن می توان شیئ های متعددی ساخت. این الگو شامل توابع و فیلد ها (یا متغیر های عضو: variable member) است. هر شیئ، مقادیر مختلفی از فیلدها یا متغیرهای عضو را نگهداری می کند و از این رو می توان گفت که هر شیئ، یک حالت (state) را نگهداری می کند.

برای درک بیشتر این مفاهیم، یک مثال از دنیای واقعی می زنیم. به تصویر زیر نگاه کنید. در اینجا، ماشین یک کلاس است و انواع مختلف آن (نظیر ب ام و ، رنو، بنز و …) شیئ هایی از این کلاس هستند که هر کدام نیز مقادیر متفاوتی از فیلدها را دارند.

اشیا در جاوا - موستانگ
اشیا در جاوا – موستانگ

 

 

اشیا در جاوا

بیایید با یک مثال شروع کنیم:

class Point {
    int x;
    int y;
}

این کلاس یک نقطه را با فیلد های  x  و y  تعریف می کند.

برای اینکه نمونه یا شیئی از این کلاس بسازیم، باید از کلمه new استفاده کنیم.

Point p = new Point();

در این مثال، ما از یک تابع سازنده پیشفرض (default constructor: تابع سازنده ای که هیچ پارامتری نمی گیرد. در اینجا: ()Point) برای ساخت یک نقطه استفاده کردیم. تمام کلاس هایی که به طور مشخص تابع سازنده ای تعریف نمی کنند، یک تابع سازنده پیش فرض دارند که در واقع هیچ کاری انجام نمی دهد.

اما ما می توانیم تابع سازنده خودمان را تعریف کنیم و از آن طریق، فیلدهای شیئ را مقداردهی اولیه کنیم. به مثال زیر توجه کنید:

class Point {
    int x;
    int y;

    Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
}

این بدین معنا است که هنگام ساختن شیئ ، دیگر نمی توان از تابع سازنده پیشفرض استفاده کرد و باید از تابع سازنده ای که تعریف کردیم استفاده کنیم:

new Point(4,1): این دستور، نقطه ای را با مقدر x=4 و y=1 می سازد.

می توانیم بیشتر از یک تابع سازنده تعریف کنیم، بنابرین Point می تواند با روش های مختلفی ساخته شود.

class Point {
    int x;
    int y;

    Point() {
        this(0, 0);
    }

    Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
}

به استفاده از کلمه this در اینجا توجه کنید. برای فراخوانی یک تابع سازنده از درون یک تابع سازنده دیگر می توانیم از آن استفاده کنیم (برای جلوگیری از تکرار کد) و باید اولین خط در تابع سازنده باشد.

همچنین برای اشاره به شیئ فعلی که با آن کار می کنیم نیز از کلمه this استفاده کردیم.

پس از آن که شیئ p را تعریف کردیم، می توانیم به طریقه زیر به x و y دسترسی داشته باشیم.

p.x = 3;
p.y = 6;

 

توابع کلاس

مثال هایی که تا به اینجا مشاهده کردید، تنها با فیلدهای کلاس کار می کردند. اکنون می خواهیم در کلاس Point توابعی را نیز تعریف کنیم.

class Point {
    ... // Our code previously
    void printPoint() {
        System.out.println("(" + x + "," + y + ")");
    }

    Point center(Point other) {
        // Returns the center between this point the other point
        // Notice we are using integer, we wan't get an accurate value
        return new Point((x + other.x) / 2, (y + other.y) / 2);
    }
}

 

Public و Private

اگرچه که درباره این کلمه ها بعداً صحبت خواهیم کرد، اما درک تفاوت بین متغیرها و توابعی که private یا public هستند، بسیار مهم است.

وقتی از کلمه private قبل از یک تابع یا متغیر استفاده می کنیم، بدین معنی است که تنها خود کلاس می تواند به آن متغیر یا تابع دسترسی داشته باشد و وقتی از کلمه public استفاده می کنیم، بدین معنی است که همه می توانند به آن دسترسی داشته باشند. به طور معمول توابع سازنده را public ، متغیرها را private و توابع را گاهی private و گاهی public تعریف می کنند.

 

در نهایت

[*] در این درس، با اهمیت اشیا در جاوا آشنا شدید و با مثال های مختلف مشاهده کردید که چطور می توان از یک کلاس شیئ ساخت. با موستانگ در درس بعدی همراه باشید تا نحوه کامپایل برنامه را به شما بیاموزد.

[*] اگر هر گونه سوال و یا ابهامی در این درس برایتان پیش آمده، می توانید در پایین این نوشته و در قسمت دیدگاه ها آن را ثبت کرده و با موستانگ به اشتراک بگذارید. همچنین پیشنهاد می کنیم که برای تمرین کد نویسی، حتماً سری به مانِژ بزنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *