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

اسلاید 1 :

Lecture 4
کلاسها و اشیاء: اصول

اسلاید 2 :

برنامه نویسی و تجرید
تمام زبانهای برنامه نویسی از مفهوم تجرید پشتیبانی می کنند.
به این مفهوم پنهان سازی اطلاعات نیز گفته می شود.
چگونگی استفاده از یک ماژول را از جزئیات پیاده سازی آن جدا می کند.

زبانهای بر اساس رویه (Procedural)
تجرید داده: استفاده از انواع داده
تجرید کنترل: استفاده از توابع

زبانهای شی گرا:
تجرید داده و کنترل: استفاده از کلاس

اسلاید 3 :

درست کردن ساندویچ
تهیه ی ساندویچ بر اساس رویه
آرد کردن گندم و پختن نان
ذبح گاو و تهیه همبرگر
دوشیدن گاو و درست کردن پنیر
سرخ کردن همبرگر، قرار دادن همبرگر روی نان، گذاشتن پنیر روی همبرگر و گذاشتن نان روی پنیر

تهیه ی ساندویچ به روش شی گرا
تهیه ی نان از نانوایی
تهیه گوشت از قصابی
تهیه پنیر از لبنیاتی
سرخ کردن همبرگر، قرار دادن همبرگر روی نان، گذاشتن پنیر روی همبرگر و گذاشتن نان روی پنیر

اسلاید 4 :

کلاس چیست؟
گروهی از اشیاء با خواص مشابه، رفتار مشابه، ارتباطات مشترک با دیگر اشیاء و سمانتیک مشترک

اشیایی که مثل هم هستند و تنها حالت آنها با هم فرق می کند را در یک کلاس قرار می دهیم.

کلاس ماشینها
کلاس پرندگان
کلاس نانواها

اسلاید 5 :

کلاس یک مدل است
کلاس یک مدل برای گروهی از اشیاء است.

تمرکز کلاس روی رفتارهای مشترک اشیایی است که کلاس آنها را مدل می کند.

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

مدل همچنین خصوصیات مشترک شی را شامل می شود.

اسلاید 6 :

کلاس نوع است شی یک متغییر است
متغییرهای از نوع کلاس (اشیا) شبیه متغییرهای هستند که از انواع پیش ساخته ایجاد می شوند.
تمام نانوانها خواص مشترکی دارند.

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

چالشهای OOP تعریف کلاس ها و ایجاد اشیایی است که با مساله تطابق داشته باشد.
آیا به کلاس کشاورز نیاز داریم.

اسلاید 7 :

واسط شی
درخواست شما از طریق واسط به شی داده می شود.
واسط توسط کلاس مشخص می شود.
مهم
آیا لازم است که ما بدانیم که نانوایی گندم را از کجا تهیه می کند؟
کی لازم است بداند که نانوایی چگونه کار می کند؟
Bakery
makeBagel()
makeBread()
sellBagel()
sellBread()
TYPE
INTERFACE

اسلاید 8 :

پیاده سازی
در پیاده سازی یک کلاس، کد کلاس و بعضی داده ها پنهان هستند.
در نانوایی چه چیزی مخفی است؟

هر درخواست در واسط دارای یک متد است. هر وقت درخواستی مطرح شود، متد مربوطه صدا زده می شود.

ما می گوییم که شما یک پیغام برای شی فرستاده اید، شی نیز با اجرای کد مناسب به درخواست شما پاسخ می دهد.

اسلاید 9 :

تعریف کلاس
شما همین الان می دانید که چگونه:
از کلاسها و اشیا ساخته شده از آنها استفاده کنید.
متدها را فراخوانی کنید.

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

String name = “Fido”;
System.out.println(“name length = “ + name.length());

اسلاید 10 :

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

متغییرها را می توان از نوع کلاس تعریف کرد.

به متغییری که از نوع کلاس باشد شی یا یک نمونه از کلاس گفته می شود.
اگر A یک کلاس باشد، جملات زیر معنای یکسانی دارند:
X از نوع A است.
X یک شی از کلاس A است.
X یک نمونه از کلاس A است

اسلاید 11 :

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

در جاوا، فایل کلاس با پسوند .java مشخص می شود.

اسم فایل و اسم کلاس باید یکی باشد.

اسلاید 12 :

اشیا
تمام اشیا یک کلاس متدهای یکسانی دارند.

تمام اشیا یک کلاس مشخصات یکسانی دارند.

مقدار مشخصه در اشیا مختلف می تواند متفاوت باشد.

مقادیر مشخصه ها حالت شی را تعریف می کند و باعث تمایز اشیا از هم می گردد.

اسلاید 13 :

مثالی از کلاس
چه خدمات و رفتارهایی برای اشیا زیر مناسب است؟

چراغ راهنمایی

درب اتوماتیک گاراژ

حساب بانکی

اسلاید 14 :

آناتومی یک کلاس جاوا
Visibility modifier (More on this later)
Name of the class
Keyword class
public
class
Date1
Class body: instance variables, methods
NO semi-colon

اسلاید 15 :

فیلدهای کلاس
داخل کلاس تعریف می شود.

ممکن است:
نوع اصلی باشد.
از نوع یک کلاس دیگر باشد.

توسط تمام متدهای کلاس قابل دسترسی است.
یعنی حوزه ی تعریف آن کلاس مربوطه است

در مثالهای قبلی ، درب اتوماتیک گاراژ، حساب بانکی و چراغ راهنمایی چه فیلدهایی مورد نیاز است؟

اسلاید 16 :

آناتومی یک متد
خیلی شبیه تابع است.
Visibility modifier (More on this later)
Name of the method
return type
public
double
toCelcius
Method code: local variables and statements
(double fTemp)
Optional parameters

اسلاید 17 :

مثال: کلاس Date1
این تعریف در فایل Date1.java انجام می شود.

public class Date1
{
public String month; public int day;
public int year;

public String toString( )
{
return month + “ “ + day + “, “ + year;
}
}
These are the (public)“data members” or “instance variables” of the class
This is a method definition and its implementation

اسلاید 18 :

متد toString از کلاسDate1
toString یک متد از کلاس Date1است.
تعریف و پیاده سازی آن جزیی از کلاس Date1 است.

متدهای کلاس ممکن است:
چیزی برنگردانند یا مقدار بازگشتی داشته باشند.
دارای پارامترهایی (اختیاری) باشند که:
از انواع اصلی داده هستند.
اشیا هستند.

تمام متدهای کلاس به همه ی متغییرهای کلاس (خواص) دسترسی دارند.

اسلاید 19 :

استفاده از Date1
تعریف این کلاس در فایلی به اسم Date1Demo.java. قرار می گیرد.

اسلاید 20 :

ایجاد شی Date1
دستور Date1 myDate; متغییری از نوع Date1 تعریف می کند.
ولی هنوز هیچ شیی از نوع Date1 وجود ندارد.

دستور myDate = new Date1( ); یک شی جدید به اسم myDate از نوعDate1 ایجاد می کند.

از این به بعد myDate به یک شی از نوع Date1 اشاره می کند.

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

Date1 myDate = new Date1( );

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