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

در این مقاله سعی داریم تا بتوانیم با مفهوم C# که  زبانی شی گرا است، آشنا شویم.

C# چیست؟

C# یک زبان برنامه نویسی ساده،عمومی و شی گرا است که در شرکت ماکروسافت توسط آندرس هیلسبرگ ساخته شده و توسط انجمن سازندگان اروپایی رایانه (ECMA) و سازمان بین المللی استاندارد (ISO) تایید شده است. C# بر اساس مفهوم برنامه نویسی شی گرا است.

دلایلی زیر C# را یک زبان حرفه ای گسترده ساخته است:

• یک زبان مدرن و جامع است.
شی گرا است.
• Component oriented است.
• یادگیری آن آسان است.
• یک زبان ساختار یافته است.
• برنامه های کارآمد تولید می کند.
• در سیستم های مختلف کامپیوتری کامپایل می شود.
• بخشی از .Net Framework است.

.Net Framework چیست؟

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

• برنامه های ویندوز

• برنامه های وب

• وب سرویس

برنامه های  . Net Framework برنامه های چند پلت فرمی هستند. فریم ورک آن به گونه ای طراحی شده است که با تمام برنامه هایی که ذکر خواهیم کرد می تواند استفاده شود : C# ، C++ ،visual basic،JSCript ،COBOL و غیره. همه ی این زبان ها همان طور که با هم در ارتباط هستند ، می توانند به این فریم ورک نیز دسترسی داشته باشند.

.Net Framework شامل یک کتابخانه عظیم از کدهایی است که توسط زبان های برنامه نویسی سمت کاربر مثل C# استفاده شده است.

تعدادی از کامپوننت های .Net Framework :

• (Common Language Runtime (CLR

• The .Net Framework Class Library

• Common Language Specification

• Common Type System

• Metadata and Assemblies

• Windows Forms

• ASP.Net and ASP.Net AJAX

• ADO.Net

• (Windows Workflow Foundation (WF

• Windows Presentation Foundation

• (Windows Communication Foundation (WCF

• LINQ

یک برنامه C# از بخش های زیر تشکیل شده است:

فضای نامی (Namespace declaration)

• کلاس

• متد های کلاس

• ویژگی های کلاس

• یک متد اصلی

• عبارت ها

• توضیحات

برای مثال این یک برنامه کوچک با C# است:
 
 using System; namespace HelloWorld { class helloWorld { static void Main(string[] args) { Console.WriteLine("Hello World, This is my first C# program"); Console.ReadKey(); } } } 

 بیایید نگاهی به بخش های مختلف این برنامه بیندازیم:
خط اول برنامه using system ; کلمه using برای وارد کردن فضای نام سیستم (namespace) در برنامه است. یک برنامه معمولا دارای چند عبارت using است.
خط بعد یک فضای نام (namespace) دارد. یک فضای نام (namespace) مجموعه ای از کلاس ها است. فضای نام “HelloWorldApplication”  شامل کلاس HelloWorld است.
خط بعد شامل یک کلاس است، کلاس HelloWorld شامل داده ها و تعاریف متد هایی است که برنامه شما استفاده می کند. متد ها رفتارهای کلاس را تعریف می کنند. با این حال کلاس HelloWorld  تنها شامل یک متد اصلی است. خط بعد متد اصلی را تعریف می کند، که بخش مهم برنامه C# است. متد اصلی مشخص می کند که کلاس چه کاری را انجام می دهد و چه چیزی را اجرا می کند.
خط بعد  /*…*/ ، برای اضافه کردن توضیحات و نظرات در برنامه است و توسط کامپایلر نادیده گرفته می شود.
متد اصلی رفتار خود را با عبارت Console.WriteLine(“Hello World”)  مشخص می کند.
WriteLine یک متد کلاس console است که در فضای نام (namespace) سیستم تعریف شده است.
این عبارت پیام “Hello,World!” را در صفحه نمایش نشان می دهد.

به شما توصیه می کنیم که نکات زیر را یادداشت کنید:

C# حساس به حروف کوچک و بزرگ است.
تمامی جملات و عبارات باید با ; پایان یابند.
شروع اجرای برنامه با متد اصلی خواهد بود.

مفهوم OPP

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

1.کلاس

یک کلاس مجموعه ای از متد ها و متغیر ها است.در واقع طرحی است که داده ها و رفتارشان را تعریف می کند.
بیاید humanBeing را به عنوان یک کلاس در نظر بگیریم. یک کلاس یک طرح برای تمام اجزای عملکردی است که ویژگی ها و خواص خود را تعریف می کنند.مانند انسان،که دارای اعضای بدنی است که عملکرد های مختلفی دارند.
ما می توانیم یک کلاس را با استفاده از کلمه class تعریف کنیم و محتوای آن داخل یک جفت {} قرار می گیرد و آن را در مثال زیر نشان داده ایم:

 

 public class humanBeing { // declare field properties, event, delegate, and method } 

2.وراثت

وراثت یکی از ویژگی های برنامه نویسی شی گرایی است که اجازه می دهد زمانی که کلاسی ویژگی های کلاس دیگری را شامل می شود, کدها دوباره استفاده شوند.  humanBeing را به عنوان یک کلاس در نظر بگیرید که ویژگی هایی مانند دست ها, پاها, چشم ها, دهان و توابعی همچون راه رفتن , صحبت کردن , خوردن , دیدن و غیره دارد.
Women و Men نیز کلاس ها هستند اما بیشتر ویژگی ها و توابع در کلاس humanBeing وجود دارد. از این رو, آن ها می توانند با استفاده از مفهوم وراثت تمام موارد را از کلاس humanBeing به ارث ببرند. در اینجا نمونه کد وجود دارد:

 

 using System; namespace InheritanceExample { public class humanBeing { public humanBeing() { Console.WriteLine("Calling the human being class constructor"); } public void Display() { Console.WriteLine("I'm a human being"); } } public class Man:humanBeing { public Man() { Console.WriteLine("I'm a man, a male human being"); } } public class Program { static void Main(string[] args) { Man yann = new Man(); yann.Display(); Console.ReadKey(); } } } 

3.اشیا

نام من Yann است و یک نمونه یا شی از کلاس men هستم. هنگامی که می گوییم انسان ها مرد یا زن فقط منظورمان نوع است. شما دوستتان و یا من. ما شکل های این کلاس هستیم. ما یک حضور فیزیکی داریم در حالی که کلاس ها فقط یک تعریف منطقی هستند. ما شی ها هستیم.
نحوه ایجاد یک شی از کلاس Men:
Man Yann = new Man();

4.انتزاعی بودن

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

5. کپسوله کردن

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

6.چند ریختی

چند ریختی مفهومی است که به ما اجازه می دهد روش انجام کاری را با تغییر نحوه انجام آن و یا با تغییر بخش های به کار گرفته شده برای انجام آن, از نو تعریف کنیم. این کار را می توان در دو حالت انجام داد,overloading و overriding
اگر در راه رفتن به جای پا از دست هایمان استفاده کنیم, در این جا بخش های به کار گرفته شده برای انجام کاری را تغییر داده ایم. از این رو این عمل overloading نامیده می شود.

 

 using System; namespace polymorphismExample { public class Numbers { public void addition(int a, int b) { Console.WriteLine(a + b); } public void addition(int a, int b, int c) { Console.WriteLine(a + b + c ); } } public class Display { static void Main(string[] args) { Numbers obj = new Numbers(); obj.addition(3, 7); obj.addition(9, 4, 2); Console.ReadKey(); } } } 

خروجی:

10
15
و اگر روش مشخص شده ای برای راه رفتن  وجود داشته باشد ولی بخواهم به طور متفاوتی راه بروم اما با استفاده از پاهایم, در این صورت می توانم همانطور که می خواهم راه بروم. این به overriding معروف است.

 

 using System; namespace polymorphismExample { public class parentClass { public virtual void Display() { Console.WriteLine("Hello! My name is Yann!"); } } public class childClass:parentClass { public override void Display() { Console.WriteLine("Hello! Nice to meet you!"); } } public class Program { static void Main(string[] args) { parentClass obj = new childClass(); obj.Display() Console.ReadKey(); } } } 

 

برای درج نظر و یا طرح سوالات خود لطفا در سایت ثبت نام کنید و یا وارد سایت شوید

نظرات کاربران

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