تبلیغات
banner
banner
banner
تبلیغات
banner

فیلم های آموزشی : 36 +

تعداد کاربران : 36 +

تعداد کل مطالب : 338 +

تعداد نظرات : 29 +

حضرت محمد (ص) : طلب دانش بر هر مسلمانى واجب است. خداوند جويندگان دانش را دوست دارد.

آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و دوازدهم


به نام پروردگار جهان

آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و دوازدهم

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

قسمت صد و دوازدهم


خاصيت هاي فقط-خواندني :

در قسمت قبل با نحوه ايجاد يك عضو داده اي (يا همان فيلد ) براي كلاس آشنا شديد و مشاهده كرديد كه چگونه مـي تـوان از آن استفاده كرد .

اما همانطور كه گفتم هيچگاه نبايد اجازه دهيد كه كاربر به طور مستقيم مقدار موجود در يك فيلـد را تغييـر دهـد، بلكـه همواره بايد يك خاصيت ايجاد كنيد تا كاربر به وسيله آن خاصيت مقدار فيلد را تغيير دهد و يا به آن دسترسي پيدا كند.

با وجود اينكه خاصيت ها به وسيله دو متد تعريف مي شوند، اما نحوه استفاده از آنها براي كاربر، دقيقاً مشابه فيلد ها اسـت .

در حقيقـت مـي تـوانيم بگوييم خاصيت ها، متدهايي هستند كه كاربر مي تواند مشابه يك فيلد با آنها كار كند .

به اين ترتيب، انتخاب اين كه براي يك مورد خاص از متد استفاده كنيد و يا از خاصيت، به اين بستگي دارد كه كاربر با كداميك مي تواند راحت تر كار كند .

يكي از مشكلاتي كه در صورت دسترسي مستقيم كاربر به فيلد ممكن است به وجود آيد، اين است كه در اين صورت كاربر مي تواند هم مقدار موجود در فيلد را بخواند و هم آن را تغيير دهد .

در شرايطي ممكن است نخواهيد اجازه دهيد كه كاربر فيلـ د را تغييـر دهـد، بلكه مي خواهيد فيلد به صورت فقط-خواندني باشد و كاربر فقط بتواند اطلاعات آن را بخواند.

سرعت اتومبيل يك نمونه خوب براي اين است كه مشخص شود چگونه مدلي از يك شيئ واقعي در كامپيوتر، بايد دقيقاً مشابه همان شيئ عمل كند .

در يك اتومبيل واقعي اگر در حال حركت با سرعت ۶۰ كيلومتر در ساعت هستيد، نمي توانيد به سادگي سرعت را بـه هر عددي كه بخواهيد تغيير دهيد .

با استفاده از سرعت سنج فقط مي توانيد عدد سرعت را بخوانيد، اما نمي توانيد با انگشت عقربه ي
سرعت سنج را جا به جا كنيد تا سرعت اتومبيل تغيير كند. براي تغيير سرعت بايد از پدال گاز و يا پدال ترمز براي افزايش و يا كاهش سرعت اتومبيل استفاده كنيد .

براي مدل كردن عملكرد اين پدالها در كلاس Car ،بايد متدهايي ايجاد كنيـد كـه سـرعت را تغييـر دهند (Accelerate ،Decelerate) .

همچنين يك خاصيت فقط -خواندني نيز بـه نـام Speed ايجـاد كنيـد تـا سرعت كنوني اتومبيل را نمايش دهد

بنابراين بهتر است براي جلوگيري از اين مشكل و همچنين مشكلات مشابه، از يك خاصيت براي دريافت مقـدار ايـن فيلـد اسـتفاده كنيم تا بتوانيم قبل از قرار دادن مقدار مورد نظر در فيلد، از درست بودن آن مطمئن شويم .

البته براي نگهداري مقدار سرعت مسلماً به يك عضو داده اي در كلاس نياز داريد، اما ايـن عـضو داده اي بايـد فقـط بتوانـد توسـط اعضاي كلاس مورد استفاده قرار گيرد و يا تغيير داده شود .

به همين دلیل براي تعريف آن از كلمـه كلیدی private اسـتفاده میکنیم.

متغيير speed _در اين قسمت به صورت private تعريف شده است، بنابراين فقط مي تواند توسط متدهايي كه در داخـل كلاس وجود دارند مورد استفاده قرار بگيرد .

كاربران كلاس Car ،حتي از وجود چنين عضوي نيز مطلع نخواهند بـود .

همچنـين در كلاس خاصيتي به نام Speed تعريف مي كنيم كه كاربر به وسيله آن بتواند از مقدار اين متغيير كه نـشان دهنـده سـرعت شـيئ است مطلع شود .

در اين كلاس نام فيلد مربوط به سرعت و همچنين خاصيت آن يكي است، براي جلوگيري از اين تشابه معمـولاً در ابتداي نام فيلد، يك زير خط اضافه مي كنند.

بنابراين نام فيلد، _speed و نام خاصيت، Speed خواهد شد.

امتحان كنيد: اضافه كردن خاصيت Speed

براي تعريف متغيري كه فقط به وسيله اعضاي كـلاس قابـل دسترسـي باشـد،

بـه جـاي كلمـه كلیدی public از private استفاده ميکنیم.

كد زير را به كلاس Car اضافه كنید.

براي اینکه كاربر بتواند از اندازه سرعت مطلع شود، بايد يك خاصيت فقط -خواندني به كلاس اضافه كنیم.

کد زیر را به کلاس Car اضافه کنید.

حال متدي را به نام Accelerate براي تنظیم سرعت اتومبييل ایجاد میکنیم. این متـد مقـدار ي را بـر حـسب کیلومتر بر ساعت به عنوان پارامتر در يافت ميكند و سرعت شيئ را برابر آن قرار مـي دهـد .

كـد ز يـر را بعـد از خاصـيت Speed وارد كنید:

براي تست كلاس، بايد تغييراتي را در زير برنامه Main فايل Program.cs ايجاد كنيد .

فايل را باز كنيد و كد آن را به صورت زير تغيير دهيد :

با كليك روي دكمه Start در نوار ابزار برنامه را اجرا كنيد.

برای درک چگونگی کارکرد این برنامه به قسمت صد و سیزدهم بروید. 😀

 

 


درباره نویسنده
سجاد اسدی
   سجاد اسدی

سجاد اسدی هستم دانشجوی رشته نرم افزار و علاقه مند به تدریس و یادگیری دروس مرتبط با تکنولوژی نرم افزار و اینترنت اشیاء جهت ارتباط با بنده مراجعه شود به آیدی سروش و تلگرام : @ordervira و پیج بنده در اینستاگرام instagram.com/sajjadred11 ""اللهم صل علی محمد و آل محمد"" برای شروع هیچ وقت دیر نیست. "الهم عجل لولیک الفرج"

دیدگاه بگذارید

avatar
  اشتراک  
اطلاع رسانی

aparat کانال آپارات

soroush کانال سروش

کانال آی گپ