آموزش جاوا- قسمت 11 (interfaces)

در این قسمت از آموزش جاوا قصد داریم تا شما را با مفهوم interface آشنا کنیم. interfaceها درواقع یک قالب و الگو برای کلاس‌های جاوا هستند. interfaceها با مشخص کردن نام تابع، نوع مقدار خروجی (یا void در صورت نداشتن مقدار خروجی) و آرگومان‌های توابع (نوع و نام) ، توابعی را برای کلاس‌ها تعریف می‌کنند. اصطلاحا به این تعریف از توابع، signature گفته می‌شود. به دلیل اینکه interface صرفا یک الگو و قالب برای کلاس است، signature حاوی هیچ کدی نمی‌باشد.

این دو نکته مهم را درباره interfaceها همواره به یاد داشته باشید:

  • اگر کلاسی یک interface پیاده‌سازی کند، همه توابع interface باید در کلاس آورده شوند.
  • کلمه کلیدی implements هنگامی استفاده می‎‌شود که بخواهیم کلاسی را بسازیم که بعد از یک interface مدل‌سازی شده باشد.

تصور کنید که بخواهیم از یک تکه چوب، یک اردک چوبی بسازیم. برای این کار ابتدا باید برای ترسیم الگو روی چوب، از یک قالب و الگو استفاده کنیم. سپس هنگامی که چوب برش داده شد، شکل استخراج شده شبیه به قالب خواهد بود. در این نقطه از کار، نه الگو و نه چوب هیچ کدام از جزئیاتی را که از خروجی نهایی انتظار می‌رفت نخواهند داشت. درواقع الگو برای تعریف ویژگی‌های پایه‌ای استفاده شده بود، نه برای جزئیات دقیق. پس از اینکه تمام قطعات اردک بریده شده، می‌توان هریک از قطعات را به تنهایی حک و تزئین کرد.

در مقایسه با مثال بالا می‌توان گقت که interfaceها نیز به عنوان الگویی برای چندین کلاس مورد استفاده قرار می‌گیرند. این کلاس‌ها توابع تعریف شده در interfaceها  را به اشتراک می‌گذارند. با این وجود پیاده‌سازی توابع، از یک کلاس به کلاس دیگر ممکن است متفاوت باشد.

مثالی از یک interface

یک interface به نام Animal را تصور کنید که توابع تعریف شده‌ای به نام‌های feed، groom، و pet داشته باشد. این توابع ممکن است برای animal های مختلف متفاوت باشد:

interface Animal {
    bool feed(bool timeToEat);
    void groom();
    void pet();
}

همانطور که قابل انتظار است، یک کلاس dog می‌تواند به این صورت پیاده‌سازی شود:

class Dog implements Animal {
    bool feed(bool timeToEat) {
      // pour food into bowl
      return true;
    }
    void groom() {
      // brush well
    }
    void pet() {
      // pet cautiously
    }
}

سایر کلاس‌های Animal ممکن است که نیازهای مخصوص به خود را داشته باشند:

class Giraffe implements Animal {
    bool feed(bool timeToEat) {
      // point to the trees 
      return true;
    }
    void groom() {
      // get a ladder
      // brush well
    }
    void pet() {
      // get a ladder
      // pet cautiously
    }
}

class Tiger implements Animal {
    bool feed(bool timeToEat) {
      // toss raw meat into cage
      return true
    }
    void groom() {
      // tranquilize
      // brush well
    }
    void pet() {
      // DO NOT PET
    }
}

در این قسمت از آموزش جاوا سعی شد تا مفهوم interface با زبانی ساده و قابل فهم برای شما عزیزان بیان شود. برای تمرین می‌توانید خودتان یک کلاس gorilla بسازید که یک interface از Animal را پیاده‌سازی می‌کند.

برای انجام تمرین‌ این مبحث می‌توانید از یک IDE آنلاین مثل tutorialspoint استفاده کنید.

پس از انجام تمرین، پاسخ شما باید مشابه کد زیر شده باشد:

class Gorilla implements Animal {
    bool feed(bool timeToEat) {
      // put gorilla food into cage
      return true;
    }
    void groom() {
      // lather, rinse, repeat
    }
    void pet() {
      // pet at your own risk
    }
}

از اینکه 11 قسمت از آموزش جاوا را با ما همراه بودید بسیار خرسندیم. در صورت هرگونه سوال می‌توانید از طریق آی دی تلگرامی @SM_SDN  سوالات خود را مطرح کنید. نقطه نظرات شما عزیزان باعث دلگرمی و بهبود کیفیت قسمت‌های آینده آموزش جاوا خواهد بود.

تاریخچه آموزش جاوا به ترتیب:

قسمت اول آموزش جاوا (مقدمه)

قسمت دوم آموزش جاوا (Types and Variables)

قسمت سوم آموزش جاوا (دستورات شرطی)

قسمت چهارم آموزش جاوا (آرایه‌ها)

قسمت پنجم آموزش جاوا (حلقه‌ها)

قسمت ششم آموزش جاوا (توابع)

قسمت هفتم آموزش جاوا (اشیا)

قسمت هشتم آموزش جاوا (ارث‌بری)

قسمت نهم آموزش جاوا (try and catch)

قسمت دهم آموزش جاوا (کلاس‌های abstract)

قسمت یازدهم آموزش جاوا (Interfaces)

قسمت دوازدهم آموزش جاوا (مفهوم Generic)

قسمت سیزدهم آموزش جاوا (Networking)

قسمت چهاردهم آموزش جاوا (مفهوم نخ و رشته)

آموزش جاوا- قسمت 11 (interfaces)
امتیاز دهید

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

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