اصول برنامه نويسي شي گرا

مفاهیم ، مبانی و اصول شی گرایی (OOP) قسمت اول

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

۱- متدها (رفتار ها)
۲- متغیر ها
۳- خصیصه ها

هر سه بخش فوق می توانند Public , Private یا Protected باشد .
متغیر ها و متد های Private یا خصوصی فقط در همان کلاس قابل دسترسی هستند و
از دنیای خارج پنهانند ، متغیر ها و متد های Public یا عمومی از طریق
دنیای خارج قابل دسترسی هستند . در مورد Protected هم در بخش وراثت صحبت
خواهیم کرد .
در صورتی که نوع متغیر public یا private تعیین نگردد (یا از Dim استفاده
شود) به صورت پیشفرض متغیر Private در نظر گرفته خواهد شد .

شما میتوانید در دنیای خارج برای خود مثال هایی از کلاس ها و اشیا بزنید ،
به عنوان مثال کلاس انسان را در نظر بگیرید (منظور از کلاس مجموعه رفتار و
خصیصه های انسانی است)
فرض کنید این کلاس شامل دو رفتار “رشد کردن” و “حرف زدن” و همچنین دارای سه خصیصه “سن” و “قد” و “رنگ چشم” باشد .
البته می توان سن و قد و رنگ چشم را به عنوان متغیر نیز در نظر گرفت ولی
به دلایلی که بعدا ذکر خواهد شد ما این دو را به عنوان خصیصه در نظر
میگیریم .
خوب ما یک کلاس به نام انسان داریم که شامل دو متد (رفتار) و سه خصیصه می باشد .
حال می خواهیم یک شی جدید از این کلاس ایجاد نماییم . نام این شی جدید را “آقا فریبرز” میگذاریم .
پس ما یک آقا فریبرز داریم که قادر است حرف بزند و رشد کند ! چرا ؟!
جواب واضح است چون یک شی از کلاس انسان است و انسان همانطور که ما تعیین
کردیم رشد می کند و حرف میزند ، بنابراین هر شیي که از این کلاس ایجاد گردد
خواص و رفتاری مانند این کلاس خواهد داشت .
فرض می کنیم این شی در کنترل ماست و میخواهیم که ۲ سال رشد کند . این رشد
کردن بر خصیصه های سن و قد تاثیر می گذارد ، البته واضح است که بر روی
خصیصه رنگ چشم تاثیری ندارد .
خوب من قصد دارم تمامی حرف های بالا را در دنیای برنامه نویسی ایجاد کنم .

پس به سراغ کد نویسی رفته و یک پروژه جدید به نام OOP ایجاد نمایید ، وارد
منوی WebSite شده و گزینه Add new item را انتخاب کنید و از لیست Class را
انتخاب و نام فایل را به Human تغییر دهید (Human.Cs در سی شارپ و
Human.Vb در ویژوال بیسیک) و بر روی دکمه Add کلیک نمایید .
پیامی مبنی بر اضافه کردن این کلاس به پوشه App_Code داده میشود ، شما
گزینه Yes را انتخاب نمایید تا کلاس Human ایجاد شده و در پوشه App_Code
قرار گیرد .
این فایل را باز نمایید احتمالا کلاس شما به شکل زیر خواهد بود :

Imports Microsoft.VisualBasic

 

Public Class Human

   

End Class

خوب این کلاس کاملا خام است و هیچ رفتار و خصیصه ای ندارد .
اکنون متد (رفتار) های رشد کردن (Grow) و حرف زدن (Talk) را به کلاس اضافه می کنیم :

Imports Microsoft.VisualBasic

 

Public Class Human

 

    Public Sub Grow()

 

    End Sub

 

    Public Function Talk(ByVal Words As String)

 

        Return “He said : “ + Words

 

    End Function

 

End Class

متد Grow یک ساب روتین است چرا که هیچ خروجی ندارد ولی Talk یک تابع است زیرا که مقدار بازگشتی ( خروجی ) دارد .

خوب متد Grow همانطور که گفتیم بر روی خصیصه های قد و سن تاثیر گذار است
پس ابتدا دو متغیر به نام Age و Height برای سن و قد (در قسمت بعد این
متغیر ها را به خصیصه تبدیل می کنیم ) اضافه می کنیم :

Imports Microsoft.VisualBasic

 

Public Class Human

 

    Dim Age As Integer = 0

    Dim Height As Integer = 0

 

    Public Sub Grow()

 

    End Sub

 

    Public Function Talk(ByVal Words As String)

 

        Return “He said : “ + Words

 

    End Function

 

End Class

مقادیر اولیه این دو متغیر را به صورت پیشفرض ۰ قرار می دهیم (شما میتوانید مقادیر دیگری قرار دهید )

خوب تاثیری که متد Grow بر روی سن و قد میگذارد را به صورت زیر تعریف می کنیم :

Imports Microsoft.VisualBasic

 

Public Class Human

 

    Dim Age As Integer = 0

    Dim Height As Integer = 0

 

    Public Sub Grow()

 

        Age = Age + 1

        Height = Height + 10

 

    End Sub

 

    Public Function Talk(ByVal Words As String)

 

        Return “He said : “ + Words

 

    End Function

 

End Class

متد Grow باعث میشود که ۱ واحد به متغیر Age و ۱۰ واحد به متغیر Height اضافه شود .
خوب کلاس ما تا حدودی تکمیل شده است ، میتوانیم آن را تست نماییم .
برای تست یک صفحه Default.aspx به پروژه اضافه کنید ، در ساب روتین مربوط
به لود صفحه ابتدا شی “آقا فریبرز ” را ساخته و با آن کار خواهیم کرد :

Dim Agha_Fariborz As New Human

با این کار ما یک شی به نام Agha_Fariborz از کلاس Human ایجاد کردیم .
حال با صدا زدن متد Grow اقا فریبرز یک سال بزرگ شده و ۱۰ سانتی متر بلند قد تر خواهد شد :

Dim Agha_Fariborz As New Human

Agha_Fariborz.Grow()

شما میتوانید مقدار متغیر سن را قبل و بعد از فراخوانی متد Grow() چاپ
کنید تا متوجه رشد آقا فریبرز بشوید ولی چون متغیر های Age و Height محلی
(Private) هستند نمی توانیم از خارج کلاس به آنها دسترسی پیدا کنیم ،
بنابراین متغیر های Height و Age را عمومی (Public) تعریف می کنیم تا از
خارج از کلاس به آنها دسترسی داشته باشیم پس کلاس Human به شکل زیر خواهد
بود :

Imports Microsoft.VisualBasic

 

Public Class Human

 

    Public Age As Integer = 0

    Public Height As Integer = 0

 

    Public Sub Grow()

 

        Age = Age + 1

        Height = Height + 10

 

    End Sub

    Public Function Talk(ByVal Words As String)

 

        Return “He said : “ + Words

    End Function

 

End Class

اکنون قادریم از خارج از کلاس به این متغیر ها دسترسی پیدا کرده و مقادیر
آن ها را قبل و بعد از اجرای متد چاپ کنیم برای این کار دو Label در صفحه
Default.aspx قرار می دهیم یکی برای نمایش مقدار متغیر سن قبل از اجرای متد
Grow و یکی برای نمایش این مقدار بعد از اجرای متد داریم :

Partial Class _Default

    Inherits System.Web.UI.Page

 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

 

 

        Dim Agha_Fariborz As New Human

 

        Lbl_Before.Text = Agha_Fariborz.Age

 

        Agha_Fariborz.Grow()

 

        Lbl_After.Text = Agha_Fariborz.Age

  

    End Sub

End Class

اکنون صفحه Default.aspx را در مرورگر خود مرور کرده تا متوجه تغییرات شوید .
همانطور که می بینید مقدار چاپ شده قبل از اجرای متد ۰ و بعد از آن به ۱ تغییر یافته است .
متد دیگر ما Talk بسیار ساده است کافیست در ورودی یک کلمه به آن بدهیم تا به همراه جملهHe Said برگردانده شود .
برای استفاده از این متد داریم :

Partial Class _Default

    Inherits System.Web.UI.Page

 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

 

        Dim Agha_Fariborz As New Human

        Response.Write(Agha_Fariborz.Talk(“Hello!”))

 

 

    End Sub

End Class

اگر این صفحه را در مرورگر باز کنید نوشته ” He said : Hello! ” را در صفحه مشاهده خواهید کرد .


تیپ شخصیتی INFP

تیپ شخصیتی INFP

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

محل کار

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

عناوین شغلی

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

ارتباط با دیگران

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

اوقات فراقت

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

پیشنهاد

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



    ویدیو : اصول برنامه نويسي شي گرا
این مطلب را به اشتراک بگذارید :

a b