مقدمه ای بر مفهوم شیئ گرایی در زبان های برنامه نویسی


در این مرحله از آموزش، قصد داریم نگاه دقیق تری به مفاهیم شئی گرایی که در زبان های برنامه نویسی متعددی من جمله جاوا مورد استفاده قرار می گیرند داشته باشیم. در حقیقت، شئی گرایی عبارت است از یکسری پارادایم ها و استراتژی هایی که توسط زبان های برنامه نویسی بسیاری مورد استفاده قرار می گیرند که زبان جاوا هم یکی از آن ها است. پایه و اساس رویکرد OOP یا Object Oriented Programming به معنی برنامه نویسی شیئ گرا، این است که نگاه برنامه نویسان به برنامه نویسی به نگاه ایشان به دنیای ملموس و واقعی نزدیک تر گردد. به طور مثال سیستمی که شما با استفاده از آن به مطالعه ی این مطالب آموزشی مشغول هستید یک Object یا شیئ در دنیای واقعی می باشد. حال این شیئ که در اختیار شما است با کامپیوتری که زیر دست مولف این دوره می باشد بسیار متفاوت است.

فرض کنیم که قرار است ما یک آپارتمان 10 طبقه بسازیم. هر 10 طبقه از آپارتمان ما دارای یکسری ویژگی های خاص و منحصر به فرد است مثل اینکه رنگ دیوار های طبقه اول سفید است و درهای آن کرم رنگ هستند اما این در حالی است که رنگ دیوار های طبقه هفتم صورتی است و درهای آن سفید است و ...

در حقیقت هر یک از طبقه های آپارتمان ما همچون یک Object یا شیئ در یک زبان برنامه نویسی شیئ گرا همچون جاوا است. اگرچه که هر یک از طبقات آپارتمان ما دارای یکسری ویژگی های خاص است، اما این در حالی است که کلیه طبقات آپارتمان از یکسری ویژگی های ثابت همچون اتاق خواب، سرویس، آشپزخانه و پنجره برخوردارند. در زبان برنامه نویسی جاوا یک Class دقیقاً چنین نقشی را ایفا می کند. به عبارت دیگر در یک برنامه ی نوشته شده با زبان جاوا، Class به منزله یک نقشه ی خانه است که هر یک از طبقات آپارتمان از روی آن ساخته می شود اما هر یک از طبقات علیرغم داشتن یک پلان ثابت دارای یکسری ویژگی های منحصر به فرد خود است که اصطلاحاً به هر یک از آن طبقات یک Object گفته می شود.

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

در واقع ما یک نقشه کلی یا کلاس برای آپارتمان طراحی می کنیم. حال تصمیم می گیریم که تعدادی از طبقات آپارتمان ما سه خوابه بوده و تعدای از آنها چهار خوابه ساخته شوند. در حقیقت ما از روی کلاس اصلی دو کلاس دیگر تحت عناوین سه خوابه و چهار خوابه طراحی می کنیم که ویژگی های کلاس اصلی را به ارث می برند. در برنامه نویسی جاوا به این رویداد Inheritance یا ارث بری می گویند. اصطلاحاً کلاس اولیه Superclass یا کلاس اصلی است و کلاس های سه خوابه و چهار خوابه Subclass یا کلاس زیرمجموعه می باشند.

به عبارت دیگر می توان گفت که کلاس اصلی کلاس والد بوده و کلاس های زیرمجموعه کلاس فرزند می باشند. نکته ای که در اینجا می بایست حتماً مد نظر قرار دهیم این است که هر کلاس خود به تنهایی منجر به ایجاد چیزی نخواهد شد چرا که کلاس یک مفهوم انتزاعی است و چنانچه بخواهیم نمود عینی یک کلاس را ببینیم، به یک Object یا شیئ از روی آن کلاس نیاز داریم.

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

برای درک بهتر مفهوم شیئ گرایی، به ذکر مثال دیگری می پردازیم. در مثال دوم، از خود کامپیوتر یا لپ تاپ شما به عنوان نمونه استفاده خواهیم کرد. سیستم شما یک شیئی است که می توانند چندین شیئ دیگر را در خود جای دهد مثل هارد، سی پی یو، رم و ... . سیستم شما دارای یکسری Attribute یا خصیصه می باشد که آن را از دیگر کامپیوتر ها مجزا می سازد مثلاً دارای سی پی یو هشت هسته ای می باشد. در عین حال، کامپیوتر شما دارای یکسری Behavior یا عملکرد نیز می باشد (معادل فارسی این واژه رفتار است اما به منظور انتقال بهتر مفهوم، معنای عملکرد در اینجا در نظر گرفته شده است.) به طور مثال کامپیوتر شما می تواند یک فایل صوتی را پخش کند که این رفتار مختص یک شیئ از نوع کامپیوتر است اما دیگر اشیاء در دنیای واقعی مثل یخچال دارای چنین رفتاری نمی باشند.

در واقع در برنامه نویسی شیئی گرا، اشیاء داری سه ویژگی می باشند: اول این که هر شیئ دارای یک Identity یا هویت خاص خود است (به طور مثال دو انسان که به منزله شیئ هستند را در نظر بگیرید. درست است که هر دو دارای یکسری خصایص مثل داشتن دست و پا و قدرت تفکر و غیره می باشند و در عین حال عملکردهای مشابهی نیز دارند مثل حرف زدن، دویدن و ... اما دارای دو هویت مجزا می باشند مثلاً احسان و نیما.) ویژگی دوم مربوط به Attribute یا خصیصه می باشد. مثلاً قد احسان 185 سانتی متر است اما قد نیما 176 سانتی متر می باشد. ویژگی سوم مربوط به Behavior یا رفتار آن شیئ است. مثلاً احسان می تواند به خوبی پیانو بنوازد اما نیما برنامه نویس خوبی است.

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

در برنامه نویسی به این کار اصطلاحاً Instantiation یا نمونه سازی گفته می شود. ما در برنامه نویسی شیئ گرایی برای ایجاد اشیاء اول نیاز به برخورداری از کلاس داریم اما نکته ای که این جا می بایست مد نظر قرار دهیم این است ما به عنوان برنامه نویس الزماً مجبور نیستیم که کلیه کلاس ها را خودمان بنویسیم چرا که بسیاری از کلاس ها از قبل در دل زبان برنامه نویسی مورد استفاده جای داده شده اند و ما به راحتی با استفاده کردن از کلاس یا کلاس های مد نظر می توانیم از قابلیت های آن بهره مند شویم. چنانچه بخوایم کلاس خود را هم بنویسیم همواره می بایست چهار مورد Abstraction, Polymorphism, Inheritance, Encapsulation را مد نظر قرار دهیم که می توان آن ها را به عنوان ویژگی های شیئ گرایی قلمداد کرد.

به خاطر داشته باشید
به منظور به خاطر سپردن این چهار عنصر اصلی ساخت کلاس، می توان حرف اول هر یک از چهار کلمه را گرفته و کلمه A PIE به معنی یک کلوچه را به خاطر سپرد.

یک از ویژگی های برنامه نویسی شیئ گرا، به کار گیری از مفهومی تحت عنوان Abstraction است. در اینجا ترجمه این واژه را در قالب یک مثال توضیح می دهیم. به طور مثال زمانی که شما از دوست خود خواهش می کنید که لیوان آبی که روی میز است را به شما بدهد، شما فقط نمود خارجی میز را مد نظر دارید و هرگز از دوست خود نمی خواهید تا لیوان آبی که روی میز قهوه ای رنگ با عرض دو متر و طول سه متر و ارتفاع یک و نیم متر است را به شما بدهد بلکه صرفاً مفهوم کلی میز مد نظر شما است.

در برنامه نویسی هم دقیقا همین طور است. در حین نوشتن کلاس ها دقیقاً ما می بایست یک مفهوم کلی را در نظر بگیریم. به طور مثال فرض کنیم که برنامه ای برای یک باشگاه بدنسازی می نویسیم. ما نیاز داریم تا یک کلاس ایجاد کنیم که مرتبط با ثبت نام ورزشکاران باشد و از جمله کارهایی که از طریق این کلاس می توان انجام داد می شود به ثبت نام، ویرایش اطلاعات ورزشکاران، ثبت فیش واریزی و ... اشاره کرد. در حقیقت، ما در ایجاد کلاس فقط و فقط یک مفهوم کلی را در نظر گرفته سپس شیئ هایی را به صورت Customized شده از روی آن کلاس ایجاد می کنیم تا نیاز ما را برآورده سازند.

تاکنون برای خیلی از ما پیش آمده که سرما خورده ایم. به پزشک مراجعه می کنیم و دارو می گیریم. ممکن است برخی دارو ها به شکل کپسول باشند. در حقیقت وظیفه کپسول نگهداری داروی داخل آن و محافظت از آن است. در برنامه نویسی شیئ گرا هم وظیفه Encapsulation نیز همین می باشد که Attribute ها و Behavior های موجود در یک شیئ را در کنار یک دیگر نگه دارد اما این در حالی است که موضوع به همین جا ختم نمی شود. در حقیقت وظیفه Encapsulation کمی فراتر از این است. Encapsulation این امکان را به ما می دهد تا از خصایص یک شیئ هر آنچه را که ما تمایل داریم نمایش داده شود و در معرض دید دیگر بخش های برنامه قرار گیرند. به عبارتی، دیگر بخش های برنامه ما فقط به بخش هایی از یک شیئ دسترسی خواهند داشت که ما آن ها را نمایان کرده ایم.

نکته
سوالی که در اینجا ممکن است برای برخی برنامه نویسان مبتدی پیش آید این است که چه لزومی دارد که ما چیزی را در کلاس خود ایجاد کنیم سپس خودمان را از دسترسی به آن منع کنیم. در حقیقت ما با این کار می خواهیم وابستگی مابین بخش های مختلف برنامه را به حداقل برسانیم به نحوی که ایجاد یک تغییر کوچک در بخشی از برنامه منجر به تخریب دیگر بخش ها نگردد. حال سوال دیگری که ممکن است برای برنامه نویسان مبتدی پیش آید این است که چقدر ما می بایست بخش هایی از یک کلاس را پنهان سازیم و پاسخی که می توان داد این است که هرچه بیشتر بهتر! در حقیقت ما برای این که در برنامه های نسبتاً بزرگ با سردرگمی کمتری مواجه شویم نیاز داریم تا فقط بخشی از کلاس را در معرض دید دیگر بخش های برنامه قرار دهیم که ضروری است.

Inheritanceیا وراثت این امکان را در برنامه نویسی شیئ گرایی به ما می دهد تا به جای این که یک کلاس را از اول بنویسیم، شرایطی را فراهم کنیم تا برخی ویژگی های کلاس جدیدی که می خواهیم ایجاد کنیم را از کلاس دیگری به ارث ببرد. پیش از این، مثال زدیم که در آپارتمان ده طبقه ما یک کلاس برای کلیه طبقات وجود دارد. حال اگر بخواهیم که برخی طبقات ما سه خوابه یا چهار خوابه باشند به هیچ وجه نیازی نیست که یک کلاس از پایه بنویسیم بلکه به سهولت می توانیم یک کلاس با خصوصیت سه یا چهار خوابه بنویسیم که دیگر خصوصیات خود را از کلاس اصلی یا Superclass به ارث ببرد. حال چنانچه ما تغییری در Superclass ایجاد کنیم، تغییر ایجاد شده در کلاس های سه خوابه و چهار خوابه نیز اعمال خواهد شد. نکته ای که در اینجا می بایست مد نظر قرار دهیم این است که در زبان برنامه نویسی جاوا ما فقط می توانیم از یک کلاس اصلی چیزی را به ارث ببریم.

اصطلاح Polymorphism به معنی چند فرمی است و برای روش شدن این مطلب به ذکر مثالی اکتفا می کنیم. به طور مثال حیوان سگ را در نظر بگیریم. این حیوان چنانچه داده ای از جنس بوی آدم غریبه به حس بویایی اش منتقل شود «واق واق» می کند. چنانچه داده ای از جنس گوشت به حس بویایی اش منتقل شود بزاق دهانش ترشح می شود و چنانچه داده ای از جنس بوی صاحبش به حس بویایی اش منتقل شود دم تکان می دهد. در هر سه حالت این حس بویایی سگ است که فعالیت می کند و تنها تفاوت در نوع داده ای است که به حس بویایی سگ منتقل می شود. در زبان برنامه نویسی جاوا علامت + دقیقاً چنین ویژگی دارا است. چنانچه ما دو متغییر از جنس عددی را با علامت + جمع کنیم حاصل جمع آن دو عدد را به ما خواهد داد. مثلاً 12 = 7 + 5 اما اگر دو متغییر از جنس String یا رشته را با یکدیگر جمع کنیم آن دو کلمه را در کنار یکدیگر قرار خواهند گرفت مثل Hello + World = HelloWorld.

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
کاربر میهمان
کاربر میهمان
​سلام خسته نباشید ببخشید سوالی داشتم در رابطه با برنامه نویسی جاوا هست .اولین برنامه رو نوشتم ولی وقتی که کامپایلش کردم دیگه فایلی رو که میبایست بسازه رو نساخت ممنون میشم اگه راهنماییم کنید.
milawd dehghan vd
milawd dehghan vd
کامنت یکی از دوستان عزیز رو دیدم و ترجیح دادم در سایت عضو هم بشم واقعا بسیار بسیار عالی تدریس میکنید ممنونم😊😍
کاربر میهمان
کاربر میهمان
بسیار عالی
مهدی جباری
مهدی جباری
بی معرفتیه اگر کسی بیاد محتوی هایی با این کیفیت و زیبایی رو بخونه و کامنتی نزاره....
اموزش جاوا رو خریدم 22 تومن از یکی از مرجع های بزرگ اموزشی ایرانی !!

2 هزار نمی ارزید...از جاوا فراری شدم....با اموزش های شما واقعا دارم مشتاق کد زنی میشم....

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

ارزوی من برای این مدرس عزیز و مدیریت سایت .

تشکر.
عبدالحمید ارجمند
عبدالحمید ارجمندAndroid Developer - Java - عاشق گجتهای اپل و مایکــ
واقعا کار مدرس عالی عالی هست ، آموزشهای ایشون رو دنبال کنید زیرا افراد بسیاری از این سایت شروع کرده و موفق شده اند ، خودم سراغ دارم ، پس بدونید که اگه میخواید موفق باشید ، برای شروع گزینه ی درستی انتخاب کردید. همینکه شما عضو این سایت شده اید در واقع گام بلندی در جهت مسیرتون برداشته اید ( منظورم این هست که به عنوان میهمان پیام ندادید و بلکه اومدید عضو شدید و این عضویت یعنی اینکه تصمیم گرفتید تا بمونید و مطالب رو مطالعه کنید که این خود گام بلندی است ) .

در پاسخ به

کاربر میهمان
کاربر میهمان
جالبه هرچی می خونم نمی فهمم شی گرایی برا من مسئله پیچیده ای هست یکم کاش می شد با کد نویسی و توضیح توی یه ide و تفکیک توضیحات مختلف توضیح بدید تا یکی مثل من هم بفهمه
عبدالحمید ارجمند
عبدالحمید ارجمندAndroid Developer - Java - عاشق گجتهای اپل و مایکــ
عرض سلام دارم خدمت شما . باید به عرضتون برسونم که شما باید مفهموم شیئ گرایی رو درک کنید ، همین ً متأسفانه بخاطر اینکه هی اساتید ما اومدن و توی گوشمون گفتند : "باید دقت کنید! این مبحث کمی دشواره" ، "دقت داشته باشید که پیچیده است" و از اینجور رجزها که توی گوشمون خوندن و باعث شده تا به یک مبحث میرسیم خودمون رو ببازیم !. اما بدونید که این مفهموم بسیار بسیار ساده و پیش پا افتاده هست ، چیزی که اون رو سخت کرده وجود 7-8 کلمه ی قلمبه سلمبه توی این مبحث هست که باعث شده به خودمون بگیم : أه ه ه ه ... اینو نمیدونم! چقدر سخته! و ... .
الان شما این مثال بنده رو بدونید برای مفهموم شیئ گراییتون کافیه ، با یادگیریتون همیشه مشتی باشید بر دهان کسایی که گفتن این مبحث سخت و پیچیده هست .
توی جاوا یک اومدن قاعده ای آوردن که کار ما رو آسون بکنند و اون مفهموم شیرین "شیئ گرایی" هست. وقتی این کلمه رو میشنوید باید لذت ببرید و به خودتون ببالید که "شیئ گرایی" اومده و میخواد کارمون رو ساده کنه .
در نظر بگیرید اگه ما قصد خرید یک عدد "موتور هوندا" داشته باشیم باید دو چیز رو ضمن صحبتهامون به طرف مقابل بگیم : 1- موتور 2- هوندا .
اگه شما بگید موتور میخوام : بخاطر اینکه حرف شما کامل نیست اون دوباره از شما میپرسه : چه مدلی از موتور رو میخواید ؟( موتور : سوپرکلاس و هوندا زیرکلاس ( یا ساب کلاس ) هستند ) .
خب بریم توی جاوا : اگه ما میخوایم به یک برنامه بگیم تو برامون " موتور هوندا " نشون بده ، اگه مفهموم شیئ گرایی براش تعریف نشده بود نمیدونست .
حالا ببینید چقدر کارمون مشکل بود اگه شیئ گرایی توی جاوا وجود نداشت :
باید میومدیم و میگفتیم : موتور چیزی هست که : یک انجین اصلی داره که با ریختن بنزین در باک این موتور بنزین به محفظه ی ها خاص این انجین نفوذ میکنه و سرانجام با انفجاراتی که توسط پیستنها انجام میشه موتور میتونه به جلو حرکت کنه ، دود موتور از اگزوز اون خارج میشه ، باتری داره ، چراغ داره و ...
یعنی تمام این مسائل رو هر بار باید میومدیم بهش توضیح میدادیم بعد باید بهش میفتیم :
حالا که فهمیدی موتور چیه : من این موتور رو از جنس هوندا میخوام ، اون موتوری که انجین منحنی و برجسته ای داره ، رنگش قرمز هست ، ساخت فلان کشوره و ... که این هم کلی توضیحات داشت .
حالا در دنیای جاوا همه چیز متفاوت هست .
سازنده هاش اومدن و براش تعیین کردند که هروقت کسی موتور خواست کافیه صدا بزنه : "کلاس موتور" ، بعد از اون خودم تمام برند ها رو بهش نشون میشم ، هر کدوم رو خواست انتخاب میکنه و اون طرف "هوندا" رو انتخاب میکنه .
در واقع این دیکشنری جاوا میدونه که با تعریف یک کلاس ( این که بگیم : موتور میخوایم) ، ما قصد داریم بعدش یک برند از بین موتورها نتخاب کنیم .
همه چیز توی جاوا اومدن به اشائی بدلشون کردند ودیگه نیازی نیست ما بیایم و به جاوا بفهمونیمش .
دنیای جاوا جایی هست که همه جا کلاس بندی داره ( یعنی همه چیز گروه بندی هست ، مثل دنیای خودمون ) .
این یعنی مثلاً : وقتی میخوای "آب میوه" بخوری باید دو چیز رو بگی : 1- آب 2- اسم میوه
یا مثلاً برای خرید گوشت مرغ 3 چیز رو بگی : 1- گوشت 2- مرغ 3- گرم/فریز شده
یا مثلا! برای خرید ماشین باید 4 چیز رو بگی : 1- ماشین 2- سواری 3- رنگش 4-شاسی بلند(یا اسمش)
پس هری یک از آب میوه ، گوشت مرغ و ماشین یک کلاس هستند ، شما در نظر بگیر هر یکی از اینها توی دنیای برنامه نویسی یک خط اختصاصی راجع بهشون هست . وقتی مینویسی "ماشین"به راحتی میتونی از سایر مشخصاتش بدون گرفتاری استفاده کنی .

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

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

در پاسخ به

fighter
fighter
واقعا دستتون درد نکنه زیبا توضیح داده اید.
کاربر میهمان
کاربر میهمان
انصافا ک عالی توضیح داده بودین این مطلبو.هرچی ک استادا برامون توضیح داده ب.دن یه طرف این توضیحات سایت شما یه طرف فوق العاده بود دستتون درد نکنه
کاربر میهمان
کاربر میهمان
واقعا عالیه
کاربر میهمان
کاربر میهمان
سلام
ممنون بابت سایت خوبی که دارید و آموزش های خوبی که قرار دادید.
یه سوال داشتم: توی بحث ارث بری یجا شما گفتید که خواص کلاس والد رو به فرزندان میدیم و یسری خواص رو به ارث میبرن. حالا سوالم اینجاست که ارث بری نوعی دسترسی حساب میشه یا نه؟ اگر حساب میشه به بحث Encapsulation لطمه میزنه یا نه؟
ممنون میشم راهنمایی کنید
yazdang33
yazdang33
سلام. ارث بری نمیتونه در encapsulation دخالتی کنه یا به قول شما لطمه بزنه. مثلا اگه در superclass یک فیلد یا متد private وجود داشته باشه با ارث بری هم نمیشود به آن متد یا فیلد دسترسی پیدا کرد. البته اگه برید مبحث encapsulation رو جدا بخونید خیلی بهتر متوجه میشود. و همچنین درباره متد های set و get هم بخونید خیلی بهتر متوجه میشید این مبحث رو.

در پاسخ به

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

در پاسخ به

طاهاسات
طاهاسات
فقط یه سوال اون عربی که به جا واق مبگه پارس چجوری میگه وقتی حرف پ داخل الفبا عربی نیس

در پاسخ به

ادمین سایت
ادمین سایت
با سلام
ضمن تشکر از تذکر شما
اصلاح گردید

ارادتمند
تیم سکان آکادمی

در پاسخ به

alireza bod
alireza bod
سلام مرسی از مطالب و آموزش های عالیتون.
علی یعقوبی
علی یعقوبی
great
M-Yall
M-Yall
دمتون گرم.
Nirvana
Nirvana
سلام. وقتی یه کلاس با سطح دسترسی protected ایجاد میکنیم,آیا فقط زیرکلاسهای این کلاس به آن دسترسی خواهند داشت یا زیرکلاسهای آن زیرکلاسها هام به کلاس اصلی دسترسی دارند؟فرض کنید که یک کلاس با سطح دسترسی protected میسازیم تحت عنوان Gun. از این کلاس یه زیر کلاس میسازیم با نام Snipe و از کلاس Snipe هم یک زیر کلاس دیگر میسازیم با نام Dragunov.آیا کلاس Dragunov از کلاس Gun ارث بری میکند؟
yazdang33
yazdang33
سلام. بله میتونه ارث بری کنه. به این نوع ارث بری فک کنم ارث بری multilevel میگن. ارث بری انواعی داره که میتونید سرچ کنید دربارشون بخونید.

در پاسخ به

NIQOW
NIQOW
با عرض سلام و خسته نباشید . خواهش میکنم کلاس های جاوا پیشرفته هم برگزار کنید خیلی عالی بود ;
ccc ccc
ccc ccc
سلام. در حال حاضر آموزش‌ها فقط در سایت برگذار میشه.

در پاسخ به

نامشخص
نامشخص
سلام اقای مرادی. واقعا عالی بود. ممنون
hamid_r_9750
hamid_r_9750
توضیحات عالیه.خیلی عالیه که این آموزش به صورت رایگان تو این سایت هست.
cimonela
cimonela
بسیار عالی توضیح داده شد ممنونم
فرزاد ن
فرزاد ن
من دانشجوی کامپیوتر بودم و از برنامه نویسی فراری. ولی چنان خوب توضیح میدین که دارم علاقمند میشم. مرسی. موفق باشید
javad
javad
بسیار زیبا و آموزنده.شما لایق بهترینها هستید
edris
edris
فقط میتونم بگم ممنونم ازتون..
کاربر میهمان
کاربر میهمان
عالی واقعا مثال های خیلی خوبی زده شده و توضیحات بسیار کامله.
کاربر میهمان
کاربر میهمان
never stop fighting never
کاربر میهمان
کاربر میهمان
دوستون دارم
کاربر میهمان
کاربر میهمان
با سلام خدمت استاد عزیز و گرامی
آموزشهای کاربردی و زیبای شما به ما انگیزه تلاش و مطالعه بیشتر را می دهد
ممنون و سپاسگزارم
کاربر میهمان
کاربر میهمان
سلام. خداقوت بابت آموزش های خیلی خوبتون.. موفق باشید!
iman
iman
واقعا استادانه و با دقت نظر بسیار زیاد توضیح میدهید و از کوچکترین نکات چشم پوشی نمی نمایید
زکات علم در آموزش آن است ، اینشالا در زندگیتان موفق و شاد باشید
کاربر میهمان
کاربر میهمان
عالی.خدا خیرت بده
مهدیه امیری
مهدیه امیری
ممنون بابت آموزشتون، بسیار عالی است.
کاربر میهمان
کاربر میهمان
خدا خیرتون بده که این توضیحات را در همه اختیار همه به صورت رایگان قرار داده اید واقعا آموزنده است.
کاربر میهمان
کاربر میهمان
بسیار عالی توضیح دادین
کاربر میهمان
کاربر میهمان
عالی
Deijio Delavega
Deijio Delavega
عالی است ! فکر کنم بهتر از این نمیشد کلاس و خواص آنرا توضیح داد. من لااقل 10 سایت را سرزدم هیچکدام توضیحات و مثالهاشون انقدر جامع و کامل نبود . دستتان واقعا درد نکند. متشکرم