پرووید
منو

آموزش شی گرایی OOP در سی شارپ

زبان: فارسیمدرس: پروویدسطح: پیشرفتهمدت زمان: 09:15:25تعداد ویدئوها: 141فایل های پروژه: ناموجود
قیمت:۵٬۱۹۹٬۰۰۰ تومان
این آموزش بخشی از پکیج کامل آموزش شی گرایی (OOP) است که می توانید از تمامی آموزش های آن دیدن کنید.

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

برنامه نویسی شی گرا چیست؟

برنامه نويسي شي گرا در اوايل دهه ۱۹۷۰ توسط آلن کي Alan Kay طراحي شده يعني اولين قدمهاي اين سبک برنامه نويسي توسط آلن کي برداشته شده است. اولين زبان شي گرا توسط آلن کي طراحي شد. اسم اين زبان Small Talk  است. آلن کي گفته بود که آن چيزي که باعث شد اين فکر به ذهنم برسد نحوه عملکرد سلولهاي زيست محيطي بود. يعني اين سبک برنامه نويسي از روي سلولهاي جاندارها الگو برداري شده است.

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

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

برنامه‌نویسی شی‌گرا در سی شارپ چیست؟

برنامه‌نویسی شی‌گرا یا OOP یکی از رویکردهای مهم طراحی و توسعه نرم‌افزار است که در آن برنامه با استفاده از مفاهیمی مانند Object و Class سازمان‌دهی می‌شود. در این روش، می‌توان اطلاعات و رفتارهای مرتبط با یک مفهوم را در قالب یک ساختار مشخص کنار هم قرار داد. برای مثال، در یک سامانه مدیریت کتابخانه، کلاس کتاب می‌تواند اطلاعاتی مانند عنوان و نویسنده را نگهداری کند و رفتارهای مرتبط با مدیریت کتاب را تعریف کند.

Introduction - www.provid.ir - نمونه ای از بخش Operator Overloading در آموزش شی گرایی OOP در سی شارپ
نمونه ای از بخش «Operator Overloading» در آموزش شی گرایی OOP در سی شارپ

سی شارپ از قابلیت‌های برنامه‌نویسی شی‌گرا پشتیبانی می‌کند و به توسعه‌دهندگان اجازه می‌دهد برنامه‌های خود را با استفاده از کلاس‌ها، اعضای کلاس، وراثت و Interfaceها طراحی کنند. استفاده درست از این مفاهیم می‌تواند به کاهش تکرار کد و بهبود سازمان‌دهی پروژه کمک کند. در پروژه‌های بزرگ‌تر، شناخت اصول OOP اهمیت بیشتری پیدا می‌کند؛ زیرا ساختار مناسب کلاس‌ها و مسئولیت‌های آن‌ها بر توسعه‌پذیری و نگهداری نرم‌افزار تأثیر می‌گذارد.

اصول طراحی کلاس در برنامه‌نویسی شی‌گرا

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

اعضای کلاس، مانند Fieldها، Propertyها و Methodها، بخش‌های مختلف این ساختار را تشکیل می‌دهند. همچنین Namespaceها به سازمان‌دهی انواع و جلوگیری از تداخل نام‌ها کمک می‌کنند. در طراحی شی‌گرا، آشنایی با Class و Struct نیز اهمیت دارد؛ زیرا این دو نوع از نظر رفتار و نحوه مدیریت مقادیر تفاوت‌هایی دارند. شناخت این مفاهیم به برنامه‌نویس کمک می‌کند برای هر بخش نرم‌افزار ساختار مناسبی انتخاب کند و ارتباط میان اجزای برنامه را روشن‌تر نگه دارد.

وراثت و Interface در طراحی نرم‌افزار با سی شارپ

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

Introduction - www.provid.ir - نمونه ای از بخش Inheritance در آموزش شی گرایی OOP در سی شارپ
نمونه ای از بخش «Inheritance» در آموزش شی گرایی OOP در سی شارپ

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

چرا یادگیری OOP در سی شارپ اهمیت دارد؟

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

این آموزش برای برنامه‌نویسانی مناسب است که می‌خواهند درک عمیق‌تری از طراحی شی‌گرا در سی شارپ پیدا کنند و از این مفاهیم در پروژه‌های واقعی بهره ببرند. آشنایی با کلاس‌های خاص، Operator Overloading، کلاس Object و ارتباط میان انواع مختلف، درک شما را از قابلیت‌های زبان گسترش می‌دهد. همچنین بررسی یک پروژه عملی می‌تواند به پیوند دادن مفاهیم نظری با شیوه استفاده از آن‌ها در کدنویسی کمک کند و زمینه مناسبی برای مطالعه الگوهای طراحی و معماری نرم‌افزار فراهم آورد.

سرفصل مطالب آموزش ویدئویی شی گرایی در سی شارپ

فصل اول: مقدمه این دوره آموزشی

  • مقدمه

فصل دوم: مفاهیم پایه ی شی گرایی

  • شی گرایی چیست؟
  • کلاس ها و اشیا (Classes and Objects)
  • کپسوله سازی (Encapsulation)
  • رد و بدل کردن پیام در شی گرایی (Passing Messages)
  • انتزاع (Abstraction)
  • ترکیب (Composition)
  • وراثت (Inheritance)
  • چندریختی (Polymorphism)
  • ماژولاریتی (Modularity)
  • و بسیاری موضوع های متنوع و کاربردی دیگر

فصل سوم: ساخت یک کلاس ساده در سی شارپ

  • ایجاد کلاس
  • اضافه کردن متدها به کلاس
  • اضافه کردن فیلدها به کلاس
  • و بسیاری موضوع های متنوع و کاربردی دیگر

فصل چهارم: Classes Member ها

  • فیلدها (Fields)
  • ثابت ها (Constants)
  • تعریف Enumeration ها
  • پروپرتی ها (Properties)
  • قیود پروپرتی ها (Constraints in Properties)
  • پروپرتی های فقط خواندنی (Read-Only Properties)
  • کلیدواژه ی this
  • سطح دسترسی به اعضای کلاس (Access Modifiers on Properties)
  • متدها (Methods)
  • پارامترهای رفرنس و مقدار (Value And Reference Parameters)
  • پارامترهای ref
  • پارامترهای out
  • آرگومان های نام گذاری شده (Named Arguments)
  • آرگومان های اختیاری (Optional Arguments)
  • سربارگذاری متدها (Method Overloading)
  • متدهای گسترش (Extension Methods)
  • متدهای گسترش و وراثت (Extension Methods and Inheritance)
  • متدهای گسترش و اینترفیس ها (Extension Methods and Interfaces)
  • توابع سازنده و مخرب در کلاس ها (Constructors and Finalizers)
  • توابع سازنده ی ایستاتیک (Static Constructors)
  • مقداردهی اولیه ی به اشیا (Object Initializer)
  • دیلیگیت ها (Delegates)
  • دیلیگیت های چند تابعی (Multicasting Delegate)
  • رویدادها (Events)
  • آرگومان های رویدادها (Event Arguments)
  • و بسیاری موضوع های متنوع و کاربردی دیگر

فصل پنجم: انجام Operator Overloading

  • سربارگذاری عملگرهای دوتایی (Binary Operator Overloading)
  • سربارگذاری عملگرهای تکی (Unary Operator Overloading)
  • سربارگذاری True و False
  • سربارگذاری عملگرهای منطقی دو تایی (Binary Boolean Logical Operators)
  • سربارگذاری عملگرهای منطقی تکی (Unary Boolean Logical Operator)
  • سربارگذاری عملگرهای مساوی و غیرمساوی (The Equality and Inequality Operators)
  • سربارگذاری عملگرهای مقایسه ای (Overloading the Comparison Operators)
  • سربارگذاری عملگرهای تبدیل نوع (Conversion Operator Overloading)
  • و بسیاری موضوع های متنوع و کاربردی دیگر

فصل ششم:

Indexer ها

  • ساخت ایندکسرها
  • ساخت ایندکسرهای چند بعدی (Multidimensional Indexer)
  • ساخت ایندکسر بدون آرایه
  • و بسیاری موضوع های متنوع و کاربردی دیگر

فصل هفتم: کلاس های خاص

  • کلاس های Partial
  • کلاس های Static
  • کلاس های تو در تو (Nested Class)
  • و بسیاری موضوع های متنوع و کاربردی دیگر

فصل هشتم:

Anonymous Type ها

  • ساخت انواع بی نام
  • متد Equal در کار با انواع بی نام
  • متد GetHashCode در کار با انواع بی نام
  • متد GetType در کار با انواع بی نام
  • متد ToString در کار با انواع بی نام
  • و بسیاری موضوع های متنوع و کاربردی دیگر

فصل نهم: Struct ها

  • ساخت استراکت ها
  • اضافه کردن تابع سازنده
  • نوع های Value-Type
  • و بسیاری موضوع های متنوع و کاربردی دیگر

فصل دهم: Namespace نام

  • تعریف یک فضای نام
  • فضاهای افزایشی
  • فضانام های تو در تو
  • رفرنس دادن به یک کلاس
  • و بسیاری موضوع های متنوع و کاربردی دیگر

فصل یازدهم: وراثت و Inheritance

  • تعریف وراثت در شی گرایی
  • پیاده سازی وراثت
  • رونویسی کردن اعضای کلاس پایه در وراثت
  • فراخوانی اعضای کلاس پایه
  • چند ریختی و وراثت (Polymorphism and Inheritance)
  • اعضای Protected در وراثت
  • وراثت چند مرحله ای (Multi-Level Hierarchies)
  • جلوگیری از وراثت
  • رویدادها و وراثت (Events and Inheritance)
  • توابع سازنده و وراثت (Constructors and Inheritance)
  • توابع مخرب و وراثت (Finalizers and Inheritance)
  • فراخوانی تابع سازنده ی کلاس پایه
  • توابع سانده ی Protected
  • ساخت کلاس های Abstract
  • ساخت متدهای Abstract
  • ارث بری از کلاس Abstract
  • و بسیاری موضوع های متنوع و کاربردی دیگر

فصل دوازدهم: Interface ها

  • ایجاد یک اینترفیس
  • پیاده سازی یک اینترفیس
  • یپاده سازی اینترفیس های متعدد (Implementing Multiple Interfaces)
  • پیاده سازی صریح اینترفیس (Explicit Interface Implementation)
  • وراثت اینترفیس ها (Interface Inheritance)
  • اینترفیس IComparable
  • اینترفیس IEnumerable
  • و بسیاری موضوع های متنوع و کاربردی دیگر

فصل سیزدهم: کلاس Object

  • متد Equals
  • متد GetHashCode
  • متد GetType
  • متد ReferenceEquals
  • متد ToString
  • سربار گذاری متدهای کلاس Object
  • و بسیاری موضوع های متنوع و کاربردی دیگر

فصل چهاردهم: پروژه ی عملی

  • پروژه عملی

فصل پانزدهم: جمع بندی

  • جمع بندی
دیدگاه کاربران

دیدگاه ها

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