در این مقاله قصد داریم شمارا با مبحث جذاب شئ گرایی در سی شارپ آشنا کنیم. شئ گرایی به ما کمک میکند که به نرمافزار دید conceptual و یا ادراکی داشته باشیم تا قبل از بهوجودآمدن مفهوم شی گرایی برنامهنویسان دید logical یا منطقی به نرمافزار داشتند و نمیتوانستند بهخوبی نیازهای کسبوکارها را فراهم کنند چرا که با نگاه ماشینی فرایند تولید نرمافزار را طی میکردند ولی امروزه برنامهنویسی تجاری متحول شده و برنامهنویسان میتوانند با دیدی که یک انسان به کسبوکار دارد محصول نرمافزاری خود را تولید کنند بهطوریکه امروزه به شی گرایی قلب تپنده نرمافزار نیز میگویند.
اگر قصد دارید سی شارپ رو بصورت اصولی یاد بگیرید از دوره رایگان آموزش سی شارپ در سایت باگتو شروع کنید و این دوره بی نظیر و رایگان رو ببینید.
بهطورکلی مفهوم کلی شی گرایی یا object oriented programming این است که ما بتوانیم با استفاده از شیوه تفکر بشری یک نرمافزار تولید کنیم نه با شیوه تفکر ماشینی یعنی اینکه بتوانیم هر چیزی که در دنیای واقعی وجود دارد را وارد نرمافزار کنیم برای مثال در دنیای واقعی ما یک شی به نام ماشین داریم با استفاده از شی گرایی میتوانیم آن ماشین را وارد کامپیوتر کنیم حتی میتوانیم رفتارهای اشیا را نیز وارد کامپیوتر کنیم مثلاً رفتار گاز دادن یا ترمز گرفتن را میتوان وارد کامپیوتر کرد.
همانطور که تابهحال متوجه شدهاید شی گرایی یعنی اینکه بتوانیم هر چیزی که در دنیا واقعی است همراه با رفتارهای آن وارد کامپیوتر کنیم. برای مثال قبلاً برای خرید غذا باید به رستوران میرفتیم ولی امروزه با استفاده از اپلیکیشن snapp food میتوانیم با نشستن در خانه غذای دلخواه خود را سفارش دهیم به این صورت که فرایند همان فرایند قدیمی است و هدف گرفتن غذا است ولی بهجایی که خودمان به رستوران برویم نرمافزار این کار را بهصورت بهتر و سریعتر برای ما انجام میدهد و یا قبلاً در شرکتها حساب دارها کارهای حسابداری خود را روی کاغذ پیاده میکردند ولی امروزه با نرمافزارهای حسابداری میتوان بهراحتی یک حسابدار حرفهای درون شرکت خود داشته باشید
و با این تفکر زبانهای برنامهنویسی شی گرا به وجود آمد شاید برای شما سؤال به وجود بیاید که قبل از شی گرایی برنامهنویسان چگونه یک نرمافزار تولید میکنند؟ با روشهای رویهای و ساختیافته نرمافزارها تولید میشدند که معایب و مزایای زیادی داشتند اما همه نیازها را رفع نمیکردند و شما میتوانید با چند خط سرچ در گوگل در مورد این روشها اطلاعات کسب کنید البته این روشها دیگر استفاده نمیشوند پس ما نیز در این مقاله فقط روش شی گرایی را توضیح خواهیم داد
پس ما زمانی که داریم به روش شی گرا برنامهنویسی میکنیم میتوانیم همه چیزهای دنیای واقعی را وارد نرمافزار کنیم.
مفهوم شی گرایی خود شامل مباحث مختلفی میشود و ما در این مقاله برخی از این مباحث را بررسی میکنیم
Entity:
برای اینکه هر شی در دنیای واقعی را وارد نرمافزار کنیم باید اول Entity یا هویت آن را وارد نرمافزار کنیم برای مثال در زبان سی شارپ اگر بخواهیم متغیری از نوع عددی وارد نرمافزار کنیم از int استفاده میکنیم و اگر رشته بخواهیم اضافه کنیم از string استفاده میکنیم اما اگر بخواهیم یک ماشین یا انسان را وارد نرمافزار کنیم چه؟
باید entity یا موجودیت یا هویت آن را وارد نرمافزار کنیم مثلاً باید به نرمافزار بگوییم ماشین چه خصوصیاتی دارد و ازاینپس از نرمافزار ماشین را میشناسد
برای این کار باید کد زیر را وارد کنیم
public class Human
{
public string Name { get; set; }
public string Family { get; set; }
public string Cmeli { get; set; }
public byte Age { get; set; }
}
در کد بالا ما برای کامپیوتر هویت انسان را تعریف کردهایم همانطور که میدانید هر انسان نام دارد نام خانوادگی دارد کد ملی دارد سن دارد و غیره ... و ما برای شناساندن موجودیت جدید به کامپیوتر بر حسب نیاز باید در قالب کلاس مشخصههای آن را بنویسیم و بدین شکل مفهوم انسان برای کامپیوتر شکل میگیرد
Object:
خب تا به اینجای کار ما مفهوم انسان را برای کامپیوتر تعریف کردیم حالا میتوانیم با استفاده از این مفهوم هزاران شی انسان تولید کنیم و این کار با نمونهگیری یا instantiation از هویت آن شی انجام میشود
Human Human1 = new Human();
Human1.Age = 22;
Human1.Name = "Ali";
Human1.Cmeli = "365485696447";
Human1.Family = "Moradi";
در کد بالا ما از هویت یا کلاس و یا entity انسان نمونهگیری کردیم و یک شی ساختیم به نام علی که 22 سال سن دارد و کد ملی و نام خانوادگی مختص به خود را دارد حالا میتوانیم n بار این کار را تکرار کنیم و هزاران انسان بسازیم
Human Human2 = new Human();
Human2.Age = 20;
Human2.Name = "Ahmadreza";
Human2.Cmeli = "123456789";
Human2.Family = "Gholami";
همانطور که میبینید انسان شماره دو همان مشخصههای انسان شماره یک را دارد اما مقدار آنها متفاوت است این به این معنی است که ما هویتی به نام انسان داریم حالا با این هویت و مفهوم میتوانیم انسانهای مختلفی بسازیم به هرکدام از نمونههایی از هر هویت شی یا object میگویند
تا به اینجای کار متوجه شدید که object و entity چه چیزهایی هستند اما ممکن است این سؤال برای شما به وجود بیاید که تفاوت object و entity چیست؟
در جواب این سؤال باید بگوییم که entity یک هویت است و وجود خارجی ندارد مانند هویت انسان یا هویت ماشین برفرض مثال نویسنده این مطلب هویت انسان را دارد و خواننده این مطلب نیز همینطور. اما object نمونهای از این هویت است بهعنوانمثال نام نویسنده این مطلب احمدرضا است اما ممکن است که نام خواننده آن هر چیزی باشد و نامها باهم متفاوت هستند ولی هر دوی ما مشخصهای به اسم نام داریم.
Inheritance:
ارثبری یا Inheritance به زمانی میگویند که میخواهیم با استفاده از مشخصههای یک entity یک entity دیگر بسازیم برای مثال میدانیم که شیرها و پلنگها از نوع گربهسانان هستند یعنی هویت آنها گربه سان است ولی نوع آنها متفاوت است این به معنی است که هرکدام از آنها تمام مشخصههای گربهسانان را دارند بهعلاوه مشخصههای خودشان به مثال زیر توجه کنید
public class GorbeSan
{
public int Ghalb { get; set; }
public int Panje { get; set; }
public int pooze { get; set; }
}
public class Shir:GorbeSan
{
public int yal { get; set; }
}
public class Palang : GorbeSan
{
public int tarhpoost { get; set; }
}
ارثبری به شکل بالا پیادهسازی میشود همانطور که میبینید دو موجودیت shir و palang از موجودیت gorbesan ارثبری کردهاند این یعنی مشخصههای خود را دارند بهعلاوه مشخصههای کلاس یا موجودیت گربهسانان درست مانند دنیای واقعی است و برخی موجودات برخی خصوصیات را از موجودات دیگر ارثبری میکنند
خب امیدواریم که با مفهوم شی گرایی بخوبی آشنا شده باشید البته شی گرایی بسیار گستره تر است و ما مباحث خیلی کمی از آن را در این مقاله گنجاندیم زیرا همه آنها در یک مقاله گنجانده نمیشد. شما میتوانید با مراجعه به فصل 3 و 4 دوره سی شارپ متوسط شی گرایی را بهصورت کامل و دقیق یاد بگیرید.
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید