کلاس درس OOP
ارسال شده: پنجشنبه 18 بهمن 1386, 10:06 am
خوب به علت تقاضای دوستان تاپیک جدیدی زدم ، این تمام درسهایی بوده که تاحالا گفتیم :
میخوام کمی در مورد مبحث شیرین و زیبای شی گرایی براتون حرف بزنم Laughing الان همه صفحه رو میبندن Laughing
خوب اونایی که موندن 5 نمره بهشون آخر ترم میدم Wink
من به زبون شیرین vb.net بهتون درس میدم چون خودم بیشتر به این زبون کار میکنم اگر C# هم بخواهید No problem براتون توضیح میدم .
اصلا شی چیه ؟
این یکی مبهم ترین سوالهایی هست که برنامه نویسان با آن مواجه هستند Rolling Eyes در دنیای واقعی به هر چیزی که بتونیم حسش کنیم میگیم شی ء . اما آیا تو دنیای کامپیوتر و برنامه نویسی هم همینطوره ؟ نه دیگه اشتباه نکنید ، اینجا نمیتونید حسش کنید Cool
ما تو برنامه نویسی به هر موجودیتی که مستقل باشه و دارای یک سری مشخصات و رفتار باشه که قابل شناسایی باشه میگیم شی ء .
برای مثال یک انسان رو در نظر بگیرید ( البته منظور تو دنیای واقعیه ها )
چه مشخصاتی داره ؟
حتما میگید که :
دو تا پا داره
قد
رنگ پوست
رنگ چشم
رنگ مو
نژاد
و .....
اما چه رفتارهایی انجام میده ؟
راه میره
میشینه
غذا میخوره
میبینه
گوش میده
و ........
اینها برخی از مشخصات یک انسان بود ، اما مشخصات عمومی ، میدونید که همه ادمها شبیه هم نیستند .
--------------------------------------
جلسه دوم :
من سعی میکنم همینطوری روون بگم که راحت بگیرید جریان از چه قراره .
در برنامه نویسی شی گرا تو چیز خیلی مهمه ، یکی کلاس و یکی هم وهله .
با شی که آشنا شدید ، گفتیم دارای یک سری ویژگی ها و رفتار هست که ما اونو درست میکنیم .
اما بیشتر کار ما با وهله ها یا Instance ها هست ، وهله ها یک شی واقعی است که از روی الگو ( همان کلاس ها ) ایجاد میشوند ، درواقع ما از هر کلاس فقط یکی داریم ولی وهله ها میتونند بی نهایت باشند . حالا برای اینکه گیج نشید یه مثال بگم .
كد:
Dim Ramin As New Human
با نوشتن کد بالا ما در واقع یک وهله از روی کلاس انسان ایجاد کردیم ( به زودی این کلاس رو براتون مینویسم ) ، پس در واقع رامین از نوع انسانه که رفتارها و مشخصاتش رو از کلاس انسان میگیره .
البته نمیدونم متوجه منظور من میشید یا نه آخه از اینجا به بعد چیزهایی که میخوام بگم باید کمی تا حدی زیاد Very Happy با برنامه نویسی آشنا باشید . ولی من یه جوری توضیح میدم که همگی متوجه شید .
حالا بیایید ببینیم خاصیت یا Property چیه ؟
یک انسان رو در نظر بگیرید ، رنگ چشم ، رنگ مو ، قد و .... خصوصیات یا Property یک انسان به شمار میروند .
متد method چیه ؟
دوباره یک انسان رو در نظر بگیرید ، کارها و رفتارهایی که انجام میده میشه متد ، مثلا راه رفتن ، نشستن و ....
رویداد یا Event چیه ؟
بازم یه انسان رو در نظر بگیرید ( حالا الان میگید چه گیری داده به انسان Laughing ) رفتارهایی که در مقابل محرکهای بیرونی انجام میده میشه رویداد ، مثلا وقتی با یک چوب میزنید تو سرش چی میشه ؟ خوب معلومه دیگه فریاد میکشه Laughing ای فریاد کشیدن همون رویداده
---------------------------------
جلسه سوم :
تا اینجا توضیحات مختصری به شما دادم ، لازم است بدانیم که هر چیزی که شما در دات نت با آن سر و کار دارید کلاس هستند مثلا وقتی شما مینویسید :
كد:
Dim strname As String
در واقع شما با نوشتن این کد یک وهله از کلاس String ایجاد کردید که این کلاس یک سری خصوصیات مثل Chars یا Length داره و یک سری متد مثل Toupper یا Trim و ....
اما String رویداد ندارد !! این مهمه که بدونید هر کلاس حتما لازم نیست که خصوصیات ، متد یا رویداد داشته باشه .
پس همه چیز تو دات نت کلاس هستند . ok ؟
حالا اصلا چرا از اشیاء استفاده میکنیم ؟
برنامه نویسی شی گرا امکانات بسیار عالی در اختیار ما میزارند ، خیلی ها فکر میکنند برنامه نویسی شی گرا خیلی سخته در حالی که اصلا اینطور نیست اگر شما با 4 تا اصطلاح که در زیر میگم آشنا بشید و خوب یاد بگیرید ، به راحتی میتونید برنامه نویسی شی گرا انجام بدید .
حالا این 4 تا چیه ؟
تجرید ، کپسوله کردن ، پلی مورفیسم و وراثت
کجا ؟ چرا فرار میکنید ، وایسید بابا ، زیادم سخت نیست .
1 - تجرید ( Abstraction ) : یعنی اینکه ساز و کار و پیچیدگی های شی رو از محیط خارج پنهان کنیم ، خوب واسه اینکه بهتر بفهمید بزارید یه مثال براتون بزنم
MP3 Player دارید ؟ نداری ؟ موبایل چی ؟ موبایل که دارید دیگه ، برای کار با موبایل شما لازم نیست بدونید توش چه خبره ، فقط کافیه روشنش کنید و ازش استفاده کنید .
2 - کپسوله کردن ( encapsulation ) :
یعنی اینکه هر شی باید همه چیزهایی که برای کارکردن صحیح نیاز داره رو داشته باشه و برای تامین داده ها و اطلاعات خودش به دنیای بیرون نیازی نداشته باشه .
مثلا باز همون انسان رو در نظر بگیرید Very Happy انسان برای غذا خوردن همه چیز رو داره ، دندون برای جویدن ، معده برای هضم کردن و .....
این به این معنی نیست که همه چیز رو باید از اول بسازید ، میتونید از کلاسهای دیگه داخل شی خود استفاده کنید که این استفاده مجدد از اشیا از مهمترین ویژگی های مدل شی گرا محسوب میشه .
3 - پلی مورفیسم ( polymorphism ) : یعنی اینکه اشیاء میتونند کارهای مشابهی رو انجام بدن ، ولی به روشهای مختلف ( این رو به زودی توی نوشتن کدها به صورت کامل براتون توضیح میدم )
4 - وراثت ( Inheritance ) : این مورد یکی از مهمترین ویژگی های برنامه نویسی شی گرا محسوب میشه .
به ارث بردن یکی از بهترین روشها برای تولید ویژگیهای جدیده .مثلا انسان رو در نظر بگیرید ، گفتیم که یک سری ویژگی های عام داره ( رنگ پوست ، مو و .... ) حالا فرض کنید که ما یک زیرکلاس به اسم مثلا زن و یک زیر کلاس به اسم مرد میسازیم ، این دو زیر کلاس علاوه بر داشتن ویژگی های عمومی انسان یک سری ویژگی های خاص خودشون هم دارند .
خوب از پست های بعدی کمی بیشتر کد نویسی میکنیم و از حالت تئوری در میاییم
میخوام کمی در مورد مبحث شیرین و زیبای شی گرایی براتون حرف بزنم Laughing الان همه صفحه رو میبندن Laughing
خوب اونایی که موندن 5 نمره بهشون آخر ترم میدم Wink
من به زبون شیرین vb.net بهتون درس میدم چون خودم بیشتر به این زبون کار میکنم اگر C# هم بخواهید No problem براتون توضیح میدم .
اصلا شی چیه ؟
این یکی مبهم ترین سوالهایی هست که برنامه نویسان با آن مواجه هستند Rolling Eyes در دنیای واقعی به هر چیزی که بتونیم حسش کنیم میگیم شی ء . اما آیا تو دنیای کامپیوتر و برنامه نویسی هم همینطوره ؟ نه دیگه اشتباه نکنید ، اینجا نمیتونید حسش کنید Cool
ما تو برنامه نویسی به هر موجودیتی که مستقل باشه و دارای یک سری مشخصات و رفتار باشه که قابل شناسایی باشه میگیم شی ء .
برای مثال یک انسان رو در نظر بگیرید ( البته منظور تو دنیای واقعیه ها )
چه مشخصاتی داره ؟
حتما میگید که :
دو تا پا داره
قد
رنگ پوست
رنگ چشم
رنگ مو
نژاد
و .....
اما چه رفتارهایی انجام میده ؟
راه میره
میشینه
غذا میخوره
میبینه
گوش میده
و ........
اینها برخی از مشخصات یک انسان بود ، اما مشخصات عمومی ، میدونید که همه ادمها شبیه هم نیستند .
--------------------------------------
جلسه دوم :
من سعی میکنم همینطوری روون بگم که راحت بگیرید جریان از چه قراره .
در برنامه نویسی شی گرا تو چیز خیلی مهمه ، یکی کلاس و یکی هم وهله .
با شی که آشنا شدید ، گفتیم دارای یک سری ویژگی ها و رفتار هست که ما اونو درست میکنیم .
اما بیشتر کار ما با وهله ها یا Instance ها هست ، وهله ها یک شی واقعی است که از روی الگو ( همان کلاس ها ) ایجاد میشوند ، درواقع ما از هر کلاس فقط یکی داریم ولی وهله ها میتونند بی نهایت باشند . حالا برای اینکه گیج نشید یه مثال بگم .
كد:
Dim Ramin As New Human
با نوشتن کد بالا ما در واقع یک وهله از روی کلاس انسان ایجاد کردیم ( به زودی این کلاس رو براتون مینویسم ) ، پس در واقع رامین از نوع انسانه که رفتارها و مشخصاتش رو از کلاس انسان میگیره .
البته نمیدونم متوجه منظور من میشید یا نه آخه از اینجا به بعد چیزهایی که میخوام بگم باید کمی تا حدی زیاد Very Happy با برنامه نویسی آشنا باشید . ولی من یه جوری توضیح میدم که همگی متوجه شید .
حالا بیایید ببینیم خاصیت یا Property چیه ؟
یک انسان رو در نظر بگیرید ، رنگ چشم ، رنگ مو ، قد و .... خصوصیات یا Property یک انسان به شمار میروند .
متد method چیه ؟
دوباره یک انسان رو در نظر بگیرید ، کارها و رفتارهایی که انجام میده میشه متد ، مثلا راه رفتن ، نشستن و ....
رویداد یا Event چیه ؟
بازم یه انسان رو در نظر بگیرید ( حالا الان میگید چه گیری داده به انسان Laughing ) رفتارهایی که در مقابل محرکهای بیرونی انجام میده میشه رویداد ، مثلا وقتی با یک چوب میزنید تو سرش چی میشه ؟ خوب معلومه دیگه فریاد میکشه Laughing ای فریاد کشیدن همون رویداده
---------------------------------
جلسه سوم :
تا اینجا توضیحات مختصری به شما دادم ، لازم است بدانیم که هر چیزی که شما در دات نت با آن سر و کار دارید کلاس هستند مثلا وقتی شما مینویسید :
كد:
Dim strname As String
در واقع شما با نوشتن این کد یک وهله از کلاس String ایجاد کردید که این کلاس یک سری خصوصیات مثل Chars یا Length داره و یک سری متد مثل Toupper یا Trim و ....
اما String رویداد ندارد !! این مهمه که بدونید هر کلاس حتما لازم نیست که خصوصیات ، متد یا رویداد داشته باشه .
پس همه چیز تو دات نت کلاس هستند . ok ؟
حالا اصلا چرا از اشیاء استفاده میکنیم ؟
برنامه نویسی شی گرا امکانات بسیار عالی در اختیار ما میزارند ، خیلی ها فکر میکنند برنامه نویسی شی گرا خیلی سخته در حالی که اصلا اینطور نیست اگر شما با 4 تا اصطلاح که در زیر میگم آشنا بشید و خوب یاد بگیرید ، به راحتی میتونید برنامه نویسی شی گرا انجام بدید .
حالا این 4 تا چیه ؟
تجرید ، کپسوله کردن ، پلی مورفیسم و وراثت
کجا ؟ چرا فرار میکنید ، وایسید بابا ، زیادم سخت نیست .
1 - تجرید ( Abstraction ) : یعنی اینکه ساز و کار و پیچیدگی های شی رو از محیط خارج پنهان کنیم ، خوب واسه اینکه بهتر بفهمید بزارید یه مثال براتون بزنم
MP3 Player دارید ؟ نداری ؟ موبایل چی ؟ موبایل که دارید دیگه ، برای کار با موبایل شما لازم نیست بدونید توش چه خبره ، فقط کافیه روشنش کنید و ازش استفاده کنید .
2 - کپسوله کردن ( encapsulation ) :
یعنی اینکه هر شی باید همه چیزهایی که برای کارکردن صحیح نیاز داره رو داشته باشه و برای تامین داده ها و اطلاعات خودش به دنیای بیرون نیازی نداشته باشه .
مثلا باز همون انسان رو در نظر بگیرید Very Happy انسان برای غذا خوردن همه چیز رو داره ، دندون برای جویدن ، معده برای هضم کردن و .....
این به این معنی نیست که همه چیز رو باید از اول بسازید ، میتونید از کلاسهای دیگه داخل شی خود استفاده کنید که این استفاده مجدد از اشیا از مهمترین ویژگی های مدل شی گرا محسوب میشه .
3 - پلی مورفیسم ( polymorphism ) : یعنی اینکه اشیاء میتونند کارهای مشابهی رو انجام بدن ، ولی به روشهای مختلف ( این رو به زودی توی نوشتن کدها به صورت کامل براتون توضیح میدم )
4 - وراثت ( Inheritance ) : این مورد یکی از مهمترین ویژگی های برنامه نویسی شی گرا محسوب میشه .
به ارث بردن یکی از بهترین روشها برای تولید ویژگیهای جدیده .مثلا انسان رو در نظر بگیرید ، گفتیم که یک سری ویژگی های عام داره ( رنگ پوست ، مو و .... ) حالا فرض کنید که ما یک زیرکلاس به اسم مثلا زن و یک زیر کلاس به اسم مرد میسازیم ، این دو زیر کلاس علاوه بر داشتن ویژگی های عمومی انسان یک سری ویژگی های خاص خودشون هم دارند .
خوب از پست های بعدی کمی بیشتر کد نویسی میکنیم و از حالت تئوری در میاییم