نمایش نتایج 1 تا 5 از 5

نام تاپیک: کاربرد فیلد های ایستا و کبسوله سازی

  1. #1
    کاربر دائمی
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    بندرعباس
    سن
    24
    پست
    361

    کاربرد فیلد های ایستا و کبسوله سازی

    سلام
    ببخشید من میخواستم بدونم دقیقا کاربرد فیلدهای Static و کبسوله سازی در کجاها است؟
    ممنون


  2. #2
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,376

    نقل قول: کاربرد فیلد های ایستا و کبسوله سازی

    شما اگه بخوای متغییری رو در یک کلاس فراخوانی بکنی اول میای شی رو تعریف میکنی بعد متغییر رو فراخوانی میکنی ولی اگه استاتیک باشه دیگه نیازی به تعریف شی برای فراخوانی متغییر نداری.

  3. #3
    کاربر دائمی
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    بندرعباس
    سن
    24
    پست
    361

    نقل قول: کاربرد فیلد های ایستا و کبسوله سازی

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

  4. #4
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,376

    نقل قول: کاربرد فیلد های ایستا و کبسوله سازی

    class A {
    public static $statici = 'استاتیک';
    public $no_static = 'استاتیک نیست';
    }
    echo A::$statici; //استاتیک
    echo A::$no_static;//خطامی دهد
    ?>

  5. #5

    نقل قول: کاربرد فیلد های ایستا و کبسوله سازی

    دوست گرامی، فیلدهای استاتیک برخلاف فیلدهای معمولی، در هر لحظه فقط یک نسخه توی حافظه دارن و اونهم توسط نام کلاس (و نه نام شئ) قابل دسترسیه. یعنی اینکه به ازای هر شئ، یک فیلد ایجاد نمیشه و کلاً یک عدد بیشتر نداریم. این ویژگی خیلی جاها بدرد میخوره. مثلاً یک شئ، فیلد رو مقداردهی کنه و شئ دیگه یا جای دیگه توی کد بدون استفاده از شئ، اون فیلد رو بخونیم. بخصوص توی بحث Multi-Thread یا پردازشهای موازی، چند شئ از یک کلاس ایجاد بشه و هرکدوم، یکی از لینکهای موجود در دیتابیس رو دانلود کنن و تعداد دانلودها رو (که توی فیلد استاتیک هست)، افزایش بدن. حالا هر بخشی از کد که بخواد بدونه چندتا فایل دانلود شده، مقدار اون فیلد استاتیک رو بکار میبره و لازم نیست یک شئ جدید ایجاد بشه. حالا اگه این فیلد استاتیک نبود، وقتی یک شئ مقدارش رو افزایش میداد، درواقع مقدار فیلد خودش رو اضافه میکرد و ربطی به مقدار اون فیلد توی اشیاء دیگه نداشت.
    کپسوله سازی هم یعنی قراردادن عناصر کلاس توی یک ظرف (خود کلاس) و جلوگیری از دسترسی غیرمجاز. مثلاً فرض کنید کلاسی نوشتین که فهرست اسامی برندگان قرعه کشی رو از دیتابیس میخونه و توی یک فیلد بصورت آرایه میریزه. حالا اگه این فیلد بصورت public باشه، هرکی از راه برسه میتونه خودش رو به اون فهرست اضافه کنه ولی اگه private باشه، نمیتونن دستکاریش کنن. خوب حالا چطوری ببیننش؟ کافیه یک متد public بنویسید که اون آرایه رو return میکنه و از اونجا که متدی ندارین که مقدارش رو تغییر بده و ازطرفی، خودش هم private هست، خیالتون راحته که کسی بصورت غیرمجاز وارد اون فهرست نمیشه. به این ویژگی که توسط کلاسها و کلاً OOP به برنامه نویسی اضافه شده و تا قبل از اون (برنامه نویسی رویه گرا) وجود نداشت، میگن کپسوله سازی (Encapsulation)

تاپیک های مشابه

  1. سوال: مرتب سازی برحسب فیلد های مختلف با StoredProc استاندارد دلفی
    نوشته شده توسط hamid-nic در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 7
    آخرین پست: شنبه 17 مهر 1389, 09:31 صبح
  2. راهنمایی در مورد نحوه ذخیره سازی فیلد های بانک در یک dll
    نوشته شده توسط mskm100 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 5
    آخرین پست: جمعه 30 آذر 1386, 11:05 صبح
  3. راهنمایی در مورد نحوه ذخیره سازی فیلد های بانک در یک dll
    نوشته شده توسط mskm100 در بخش برنامه نویسی در Delphi
    پاسخ: 5
    آخرین پست: جمعه 30 آذر 1386, 11:05 صبح
  4. مرتب سازی فیلد های فارسی
    نوشته شده توسط habdolah در بخش Foxpro
    پاسخ: 26
    آخرین پست: دوشنبه 22 آبان 1385, 14:09 عصر
  5. کاربرد کلید های ترکیبی در محیط Qbasic
    نوشته شده توسط در بخش طراحی و ساخت بازی‌های کامپیوتری
    پاسخ: 1
    آخرین پست: یک شنبه 09 شهریور 1382, 19:17 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •