09120368440

شی گرایی در ۲۰ دقیقه

شی گرایی چیست ؟

 احتمالا یک تیتر مربوط به شی گرایی را در هر کتاب یا ویدئویی که قرار است برنامه نویسی را یاد بدهد، خواهی دید.

علاوه بر آن اکثر زبان های برنامه نویسی به سمت شی گرا بودن می روند.

پس می توان گفت موضوع بسیار مهمی است.

در واقع شی گرایی چیزی است که باعث می شود در ۳ ماه برنامه نویس شوی و پروژه های تجاری را انجام دهی.

ادعایی که به نظر بعضی از افراد امکان پذیر نیست. 

در ویدئو زیر مفهوم شی گرایی توضیح داده شده و خواهی دید چطور “برنامه نویس شدن در ۳ ماه ” را امکان پذبر می کند.

ما ناخودآگاه تمام موجودات را به صورت شی گرا نگاه می کنیم…

دیدگاه کاربران
  • احمد علی رئوف 12 اکتبر 2019

    سلام درسته که همه چیز در ذهن وجود داره و باید خلقش کنیم ولی به حافظه سپردن وعدم ماندگاری آنها در ذهن برای استفاده های بعدی آن امکان رااز انسان میگیرد…

    • محسن مدحج 13 اکتبر 2019

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

  • عباس ابراهیمی 12 اکتبر 2019

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

    • محسن مدحج 13 اکتبر 2019

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

  • باران 12 اکتبر 2019

    سلام . ممنون بابت توضیحاتتون درباره شی گرایی (خیلی خوب بود).
    چند سوال داشتم فرق بین نمونه سازی با شی چیه ؟ وقتی میگیم به تعداد زیادی نمونه تولید میکنیم همون منظور این هست که به تعداد زیادی شی تولید میکنیم؟
    کمی درباره کپسوله سازیencapsulation و abstract و interface در جهان واقعی صحبت کنید.
    با تشکر فراوان

    • محسن مدحج 13 اکتبر 2019

      نگاه کنید ما دو مفهوم داریم یکی کلاس و دیگری شی هست
      برای ایجاد اشیا از کلاس از مفهوم نمونه گیری استفاده می کنیم. برای نمونه گیری از متد سازنده یا Constructor استفاده می کنیم.
      کپسوله سازی برای این استفاده می شود که ما مستقیما به چیزی دسترسی نداشته باشیم مثلا دقت کنید ما نمی تونیم به معده خودمون دسترسی داشته باشیم بلکه با واسطه ای به نام دهان غذا را می گیریم چک می کنیم و سپس اگر داده درست بود بازهم تبدیل می شود به غذای خرده و بعد وارد معده می شود. حالا ما در کپسوله سازی یک متغیر داریم که سن را نگه می دارد و نمی خواهیم افراد زیر ۱۸ سال ثبت شوند این متغیر را با کلمه private در اشیا غیر قابل دسترس می کنیم. و بعد توسط یک متد با بررسی داده مثل همان دهان امکان دسترسی به متغیر را می دهیم.

      Abstract class یا کلاس انتزاعی کلاسی است که برای وراثت استفاده می شود و برای خلق شی استفاده نمی شود چون به اندازه کافی به تکامل نرسیده.

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

      مثال یک رستوران دو نوع مشتری دارد
      مشتری حقیقی
      مشتری حقوقی

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

      حالا از این دو کلاس جدید که در دنیای واقعی می شود از آنها نمونه گیری کرد نمونه گیری می کنیم و متد کانسترکتور را صدا می زنیم.

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

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

      • باران 14 اکتبر 2019

        با تشکر فراوان :)

  • رضا احمدی 12 اکتبر 2019

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

    • محسن مدحج 13 اکتبر 2019

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

  • محمد 12 اکتبر 2019

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

  • سپيده نادري 12 اکتبر 2019

    استاد ما چگونه در حوزه وبسايت پيشرفت كنيم ؟هميشه وقتي كد ميزنم و ميخوام سايتي طراحي كنم هميشه يه جاي كارم ميلنگه و خيلي اذيت ميشم بخاطر اين موضوع.لطفا راهماييم كنيد

    • محسن مدحج 13 اکتبر 2019

      خوب دوست عزیز مشکلتون را توضیح ندادید که در فرانت مشکل دارید یا بکند. اگر در فرانت باشد باید اصول کار با div و Box modeling را خوب بدانید و بدنه یک وبسایت را یک بار خوب یاد بگیرید. اگرم با بکند مشکل دارید احتمالا فرهنگ برنامه نویسی شما قوی نیست ویدئو فرهنگ برنامه نویسی را ببینید سوال دیگری داشتید دقیق بپرسید در خدمتم

  • شیما 15 اکتبر 2019

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

    • محسن مدحج 16 اکتبر 2019

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

  • سجاد 2 نوامبر 2019

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

    • محسن مدحج 3 نوامبر 2019

      سلام دوست من این ویدئوی کامل را خدمتتون در همین کامنت ارسال کردم

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

برنامه نویسی یا کد بازی ؟

بیش از 10000 نفر در خانواده آکادمی برنامه نویسی مدحج عضو شده اند و بجای کدبازی، میخواهند ماهیانه سفارش پروژه بگیرند و درآمد داشته باشند.
دوست داری وارد خانواده ما شوی ؟

.