menusearch
javapro.ir

♨️ جلسه بیست و پنجم - Abstraction( انتزاع)

جستجو
دوشنبه ۲۳ مهر ۱۴۰۳ | ۳:۳۷:۵۳
۱۳۹۵/۱۱/۲ شنبه
(6)
(0)
♨️ جلسه بیست و پنجم - Abstraction( انتزاع)
♨️ جلسه بیست و پنجم -  Abstraction( انتزاع)

فهرست جلسات دوره مقدماتی جاوا

مقدمه اول | جاوا چیست؟

مقدمه دوم | تاریخچه جاوا

مقدمه سوم | ویژگی‌های زبان جاوا

جلسه اول | راهنمای دانلود و نصب JDK

جلسه دوم | اجرای یک برنامه جاوا در Notepad

جلسه سوم | راهنمای دانلود و نصب Eclipse

جلسه چهارم | ساخت اولین برنامه جاوا در Eclipse

جلسه پنجم | متغیر ها در جاوا

جلسه ششم | تغییر فونت محیط Eclipse

جلسه هفتم | عملگر‌های پایه ای جاوا

جلسه هشتم | دستورات شرطی

جلسه نهم | اشیا و کلاس ها

جلسه دهم | ورودی گرفتن

جلسه یازدهم | حلقه‌های کنترلی

جلسه دوازدهم | کلمه کلیدی static

جلسه سیزدهم | کلاس Math

جلسه چهاردهم | کلاس String

جلسه پانزدهم | آرایه‌های یک بعدی

جلسه شانزدهم | کنترل سطح دسرسی (Modifiers)

جلسه هفدهم | متدها در جاوا

جلسه هجدهم | کلمه کلیدی this

جلسه نوزدهم | کلاس‌های داخلی

جلسه بیستم | ارث بری در جاوا

جلسه بیست و یکم | کلمه کلیدی final

جلسه بیست و دوم | Overriding در جاوا

جلسه بیست و سوم | Polymorphism( چند ریختی)

جلسه بیست و چهارم | چندریختی را بهتر یادبگیرید

جلسه بیست و پنجم | Abstraction( انتزاع)

جلسه بیست و ششم | Encapsulation(کپسوله سازی)

جلسه بیست و هفتم | اینترفیس (Interface)

جلسه بیست و هشتم | کلاس Random

جلسه بیست و نهم | Exceptions (استثناها)

جلسه سی ام | کار با فایل در جاوا(Files and I/O)

جلسه سی و یکم | کلاس InputStreamReader

جلسه سی و دوم | کلاس OutputStreamWriter

جلسه سی و سوم | کلاس BufferedReader

جلسه سی و چهارم | کلاس BufferedWriter

جلسه سی و پنجم | Serialization در جاوا

جلسه سی و ششم | چندنخی(Multithreading)

جلسه سی و هفتم | آرایه دو بعدی در جاوا

جلسه سی و هشتم | کلاس ArrayList در جاوا

جلسه سی و نهم | Non Access Modifier در جاوا

 

دوره رایگان مقدماتی زبان جاوا


اگه میخوای موارد زیر از جاوا رو بدونی جلسه بیست و پنجم رو دانلود کن
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)پرداخته ایم.

 

 


نحوه نوشتن کلاس 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( انتزاع) در جاوا
نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

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

3 نظر
bahman
سه شنبه سی و یکم فروردین ۰۰
پاسخ
()
()
bahman
دروس تون خيلي موثر اس!
پاسخ مدیر سایت
سلام.از نظر لطف شما سپاسگزارم
پاسخ مدیر سایت
bahman
سه شنبه سی و یکم فروردین ۰۰
پاسخ
()
()
bahman
ميخواهم عضوي اين کانال شوم
پاسخ مدیر سایت
سلام. آی دی کانال @javalike
پاسخ مدیر سایت
roudkhane
یکشنبه هشتم دی ۹۸
پاسخ
(0)
()
roudkhane
سلام !تشکر بابت سايت خوبتون... خيلي جامع و روان توضيح داده شده بود
پاسخ مدیر سایت
سلام.از همراهی تون سپاسگزارم
پاسخ مدیر سایت
هدر سایت
دوره های مقدماتی تا پیشرفته جاوا، اسپرینگ بوت و اسپرینگ سکیورتی
مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو  [کلیک کنید]
آموزش پروژه محور اسپرینگ بوت(Spring Boot)-سیستم دانشگاه
ثبت نام در دوره آموزش Spring security
دوره معماری میکروسرویس ها (Microservices) با استفاده از Spring Boot و Spring Cloud
دوره پرتاب | آموزش پیش نیازهای برنامه نویسی
دوره آموزش مبانی زبان برنامه نویسی جاوا
دوره آموزش مفاهیم پیشرفته زبان برنامه نویسی جاوا
مقدمه ای از زبان برنامه نویسی جاوا(java)
آموزش زبان برنامه نویسی جاوا
آموزش گرافیک در زبان برنامه نویسی جاوا
آموزش مدیریت چیدمان گرافیکی در زبان جاوا
آموزش ساخت بازی دوبعدی در زبان جاوا
Collection ها در زبان برنامه نویسی جاوا
آموزش پروژه محور ساخت برنامه مدیریت بانک با JavaFX
نمونه پروژه های رایگان زبان جاوا
آموزش دیتابیس در زبان برنامه نویسی جاوا
نمونه مثال پایه ای زبان برنامه نویسی جاوا
نمونه مثال String در زبان برنامه نویسی جاوا
آموزش جامع برنامه نویسی JavaFX
آموزش ساخت برنامه آزمون تستی در JavaFX
آموزش برنامه نویسی سوکت در جاوا
آموزش ساخت برنامه دفترچه تلفن با JavaFX
آموزش ساخت ربات ساده تلگرام با زبان جاوا
آموزش ساخت برنامه ماشین حساب با JavaFX
آموزش ساخت برنامه ساده مدیریت ایمیل ها با JavaFX
دوره آموزش Spring Boot
سفارش انجام پروژه زبان برنامه نویسی جاوا(JAVA)
سفارش انجام پروژه برنامه نویسی متلب(MATLAB) با قیمت منصفانه و تحویل به موقع
سفارش انجام پروژه زبان برنامه نویسی سی شارپ (#C)
سفارش انجام پروژه زبان برنامه نویسی سی(C)
سفارش انجام پروژه زبان برنامه نویسی پایتون(Python)
سفارش انجام پروژه زبان برنامه نویسی PHP (پی اچ پی)
سفارش انجام پروژه زبان برنامه نویسی اسمبلی(Assembly)
سفارش انجام پروژه زبان برنامه نویسی جاوا اسکریپت (Javascript)
سفارش انجام پروژه هوش مصنوعی
سفارش انجام پروژه طراحی الگوریتم
سفارش انجام پروژه ساختمان داده ها
سفارش انجام پروژه مهندسی نرم افزار
سفارش انجام پروژه شبکه های کامپیوتری
سفارش انجام پروژه پایگاه داده: دیتابیس (database)
 سفارش انجام پروژه سیستم عامل
سفارش انجام پروژه پاورپوینت(PowerPoint)
سفارش انجام پروژه اکسل (Excel)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب
گفتگو را شروع کنید
مشاوره ،تدریس خصوصی و سفارش انجام انواع پروژه های برنامه نویسی