menusearch
javapro.ir
جستجو
۱۳۹۵/۱۱/۲ شنبه
(4)
(0)
♨️ جلسه بیست و پنجم - Abstraction( انتزاع)
♨️ جلسه بیست و پنجم -  Abstraction( انتزاع)


اگه میخوای موارد زیر از جاوا رو بدونی جلسه بیست و پنجم رو دانلود کن
Abstraction (انتزاع)
شروع با مثال از دنیای واقعی برای درک بهتر مفهوم انتزاع
Abstraction در جاوا
کلاس های  انتزاعی (Abstract Class)
نحوه نوشتن کلاس abstract
متدهای انتزاعی (Abstract Methods)
روش اعلام متدهای انتزاعی
وقتی یک متد انتزاعی اعلام می شود دو پیامد دارد
تمامی مفاهیم با مثال ساده توضیح داده شده است


Abstraction (انتزاع) فرایند پنهان کردن جزییات پیاده سازی برنامه و تنها نشان دادن قابلیت برنامه به کاربر (کسی که تنها استفاده کننده از برنامه می باشد) است.


خب تا اینجا یک تعریف رسمی از Abstraction یا انتزاع کردیم از آنجایی که ما با هم خیلی راحت هستیم رسمی بازی رو میزاریم کنار و راحت انتزاع یا Abstraction را با هم بررسی میکنیم 😊


من دیگه از اینجا به بعد بجای واژه Abstraction ،واژه انتزاع را به کار میبرم که هی نخوام زبان کیبرد رو پشت سرهم عوض کنم 😊


با مثال از دنیای واقعی شروع میکنم:
مثال 1:انجام بازی در گوشی همراه
مثلا وقتی شما گوشی همراه در دست دارید و دارید بازی می کنید از فرایند و جزییات پشت بازی خبر ندارید!! مثلا وقتی در یک بازی جنگی با یک اسلحه شلیک میکنید و گلوله به سمت هدف پرتاب می شود اصلا مهم نیست که شما بدونید چطور در این بازی گلوله داره حرکت میکنه و چطور وقتی به هدف برخورد میکند شما امتیاز میگیرید!!! در هنگام بازی تنها شما با چند دکمه ای که روی گوشی شما هست کار میکنید و هیچ خبری از پشت کار ندارید!!! انتزاع هم همین مفهوم رو دنبال میکنه ،انتزاع هدفش اینه جزییات برنامه باید از دید کاربر پنهان شود و تنها قابلیت های برنامه در معرض دید کاربر قرار گیرد.


مثال 2:فیلم سینمایی
وقتی شما یک فیلم سینمایی را تماشا میکنید و از آن لذت میبرید از جزییات پشت صحنه و کادر کارگردانی و فیلم برداری و .... یعنی از جزییات کار بی خبر هستید و همزمان تنها صحنه های خود فیلم را می بینید در حالی که جزییات اجرای فیلم را پنهان کرده اند.


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


انتزاع هم میگه ما باید کاری کنیم که جزییات برنامه پنهان شود و تنها قابلیت برنامه را برای کاربر به نمایش بگذاریم.


با این کار هم امنیت برنامه بالا می رود و هم کاربر آسوده تر است.چرا امنیت برنامه بالا می رود؟ دوباره میریم سراغ مثال چون که بهترین راه یادگیری فقط مثال است و دیگر هیچ 😊


به نظر شما امنیت کدام کیس کامپیوتر زیر بالاتر است؟!

 

abstract در جاوا

 

خب مسلما کیس گزینه الف) دارای امنیت بیشتری است،چون کاربر به جزییات آن دسرسی ندارد اما کیس ب) دارای امنیت پایین تری هست چون حتی یک کاربر عادی هم می تواند به جزییات و قطعات درون آن دسرسی داشته و آن را دستکاری کند و الله اعلم که چه بر سر این کیس آورد 😊
پس انتزاع در شی گرایی یک مفهوم خوبیست و به ما کمک میکنه با پنهان سازی جزییات پیاده سازی برنامه و تنها نمایش قابلیت برنامه به کاربر امنیت برنامه بالا رود.


Abstraction در جاوا:
در جاوا ما کلاس مون رو میتوانیم انتزاع یا abstraction اعلام کنیم.
در جاوا هر کلاسی را می شود انتزاعی اعلام کرد اما بهتر است کلاس هایی را انتزاعی اعلام کنیم که مفهوم کلی داشته باشند یعنی کلاسی که مفهوم کل تر ،بزرگ تر داشته و می تواند نقش پدر کلاس های دیگر را بازی کند:


مثال: مثلا کلاس Animal (حیوان) یک مفهوم کلی را در بر دارد وقتی ما میگوییم حیوان منظورمان مشخص نیست کدام و چه نوع حیوانی،آیا منظور ما از حیوان گربه یا سگ یا مرغ یا خروس یا ماهی و .... است؟یا کلاس automobile (اتومبیل) نیز یک مفهوم کلی را میرساند و مشخص نیست منظور از اتومبیل ماشین شخصی است یا اتوبوس یا قطار یا هواپیما یا کشتی و....است پس کلاس هایی نظیر Animal و automobile و.... که مفهوم کلی را میرسانند و می توانند نقش کلاس پدر را بازی کنند را می توانیم انتزاعی یا abstract تعریف کنیم.

 

کلاس های  انتزاعی (Abstract Class):
وقتی کلمه کلیدی abstract را قبل از کلمه class می آوریم کلاسمون تبدیل به یک کلاس انتزاعی (abstract) می شود.


نحوه نوشتن کلاس abstract:

 

public abstract class NameClass {

      
}


یا این که می توانید هنگام ایجاد کلاس جدید و تعیین نام برای کلاس تیک گزینه abstract را بزنید: تصویر(1)

 

آموزش abstraction در جاوا

نتیجه :

public abstract class Animal {

}

 

✔  یک کلاس انتزاعی (abstract) می تواند در بدنه خود یک متد از نوع انتزاعی (abstract) داشته باشد و بلعکس می تواند هیچ متد از نوع انتزاعی (abstract) در بدنه خود نداشته باشد.


✔ متد انتزاعی (abstract) به متدی می گویند که بدنه یا بلوک نداشته باشد!!!!یعنی تنها می تواند نوع،نام ،پارامتر داشته باشد و همچنین کلمه کلیدی abstract قبل از نوع متد آورده می شود:

 

•    اگر یک کلاس حداقل یک متد انتزاعی (abstract) داشت حتما باید کلاس از نوع انتزاعی (abstract) اعلام و تعریف شود:

 

آموزش شی گرایی در جاوا

 

خطای کامپایل!!! ، زیرا این کلاس در بدنه خود یک متد انتزاعی (abstract) دارد اما کلاس از نوع انتزاعی (abstract) تعریف نشده است. شکل صحیح کلاس بالا بصورت زیر است:

 

آموزش abstract در جاوا

 

•    اگر یک کلاس از نوع انتزاعی (abstract) اعلام و تعریف کردیم دیگر نمی توان از آن نمونه و شی ایجاد کنیم.

 

متد abstract  در جاوا

 

•    خب وقتی ما یک کلاس را انتزاعی اعلام میکنیم و دیگر نمی توانیم شی از ان ایجاد کنیم خب چطور به ویژگی ها و رفتار های آن دسری پیدا کنیم؟؟؟؟؟؟؟!!!!!!!!!!!!!!!!!!
پاسخ: می توانیم از طریق کلاس دیگر کلاس انتزاعی را به ارث ببریم و متدهای انتزاعی آن را در کلاس فرزند پیاده سازی کنیم و از کلاس انتزاعی استفاده کنیم.

 

....ادامه این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)


 این جلسه آموزشی را می توانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.


آموزش آسان و ساده زبان برنامه نویسی جاوا
لینک دانلود

 

 


نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا  عضو کانال تلگرام  ما شوید.
 بخش هایی از کتاب جلسه بیست و پنجم -  Abstraction( انتزاع) در جاوا را مشاهده می کنید برای دانلود بر روی لینک دانلود کلیک کنید
بخش هایی از کتاب جلسه بیست و پنجم - Abstraction( انتزاع) در جاوا
  بخش هایی از کتاب جلسه بیست و پنجم -  Abstraction( انتزاع) در جاوا را مشاهده می کنید برای دانلود بر روی لینک دانلود کلیک کنید
بخش هایی از کتاب جلسه بیست و پنجم - Abstraction( انتزاع) در جاوا
  بخش هایی از کتاب جلسه بیست و پنجم -  Abstraction( انتزاع) در جاوا را مشاهده می کنید برای دانلود بر روی لینک دانلود کلیک کنید
بخش هایی از کتاب جلسه بیست و پنجم - Abstraction( انتزاع) در جاوا
  بخش هایی از کتاب جلسه بیست و پنجم -  Abstraction( انتزاع) در جاوا را مشاهده می کنید برای دانلود بر روی لینک دانلود کلیک کنید
بخش هایی از کتاب جلسه بیست و پنجم - Abstraction( انتزاع) در جاوا
نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

0 نظر
شرکت سازنده