بخشی از پاورپوینت

--- پاورپوینت شامل تصاویر میباشد ----

اسلاید 1 :

—Binding (early and late)

—Upcasting and downcasting

—Extensibility

—The final modifier with

—methods

—classes

—

اسلاید 2 :

—مکانیسمهای برنامه نویسی شی گرا:

—محصورسازی

—ارث بری

—چندریختی

—چندریختی

—توانایی تخصیص چندین معنی به یک اسم متد

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

اسلاید 3 :

  public static void main( String[ ] args )
{

  Dog dusty = new Dog( );

  Cat fluffy = new Cat( );

  Pig sam = new Pig( );

  sayHello( dusty, 7 );

  sayHello( fluffy, 17 );

  sayHello( sam, 27 );

  }

} // end Zoo Demo

//------- output -----

Dog 7

Cat 17

Pig 27

اسلاید 4 :

—کلاس ZooDemo برای هر حیوان یک نسخه ی اختصاصی از  sayHello دارد.

—اگر حیوانات جدیدی اضافه شود چه؟

—بهتر نیست که یک متد  sayHello بنویسیم که برای همه حیوانات کار کند.

اسلاید 5 :

ZooDemo جدید چگونه کار می کند؟

فرض کنید یک متد چندین تعریف دارد.

—مقید کردن به اختصاص تعریف متد مناسب به فراخوانی متد گفته می شود.

—تقید زودهنگام وقتی اتفاق می افتد که ما تعریف مناسب متد را در هنگام کامپایل کد به متد منتسب کنیم.

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

—در مثال قبلی، کامپایلر از کجا بداند که متد  sayHello کدام حیوان را فراخوانی کند؟

—این کار از عهده ی کامپایلر خارج است و اگر تقید زودهنگام انجام شود، در هر سه مورد متد sayHello از کلاس Animal فراخوانی می شود.

اسلاید 6 :

تقید دیرهنگام

—راه حل مشکل قبلی، استفاده از تقید دیرهنگام یا پویا است.

— تقید دیرهنگام:

—تخصیص تعریف مناسب به متد در حین اجرا و هنگام فراخوانی واقعی انجام می شود.

—لذا متد مناسب با توجه به نوع شی ارسال شده (و نه نوع متغییر مرجع ) انتخاب و فراخوانی می شود.

—جاوا بجز در حالتهای زیر همیشه از تقید دیرهنگام استفاده می کند.

—final,

—private که بصورت ضمنی final است

—متدهای استاتیک

اسلاید 7 :

هر شی تعاریف متدهای خود را می داند.

—نوع متغییر کلاس مشخص می کند که از چه متدهایی می توان با این متغییر استفاده کرد.

—اما، این خود شیئی که این متغییر به آن ارجاع دارد است که یکی از این متدها را مشخص می کند.

یک حالت خاص از قانون فوق:

—نوع پارامتر کلاس مشخص می کند که از چه متدهایی می توان با این پارامتر استفاده کرد.

—اما، این خود آرگومان است که یکی از این متدها را مشخص می کند.

اسلاید 8 :

استفاده از چندریختی

—چگونه می توان از مزایای چندریختی استفاده کرد؟

—کد را طوری بنویسید که با کلاس پایه کار کند.

—بعداً، تقید دیرهنگام با توجه به نوع شی متد، مناسب را انتخاب می کند.

اسلاید 9 :

—فرض کنید که مطابق اسلاید قبلی، می خواهیم حیوانات بیشتری به سلسله مراتب اضافه کنیم.

—تمام این حیوانات (کلاسهای جدید) با متد قدیمی sayHello  از کلاس ZooDemo  کار می کنند چون که پارامتر sayHello از نوع مرجع کلاس پایه است.

—اگر اصول OOP را درست رعایت کنید، اکثر متدهای شما مثل sayHello  کار می کنند و می توانند از متغییر کلاس پایه استفاده کنند.  سپس تقید دیرهنگام و چندریختی، متد مناسب برای اجرا را مشخص می کنند.

—این برنامه قابل توسعه است زیرا شما می توانید بدون تغییر کد موجود، از کلاس پایه کلاسهای جدیدی مشتق کرده و عملکردهای جدیدی به آنها اضافه کنید.

اسلاید 10 :

اصلاح کننده ی final

—وقتی متدی با final  علامت زده می شود، نمی توان متد را بازنویسی کرد.

—لذا کامپایلر می تواند در مورد متد  final از تقید زودهنگام استفاده کند.

public final void someMethod() { . . . }

—نمی توان از کلاسی که با  final علامت زده شده است کلاس جدیدی مشتق کرد.

در متن اصلی پاورپوینت به هم ریختگی وجود ندارد. برای مطالعه بیشتر پاورپوینت آن را خریداری کنید