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

نام تاپیک: متد نیتیو، کاربرد استاتیک و Double Buffering

  1. #1

    متد نیتیو، کاربرد استاتیک و Double Buffering

    اگه میشه به این 3سوال من پاسخ بدید:
    1.متد نیتیو چه نوع متدی است؟
    2.کاربرد استاتیک چیست؟
    3.کاربرد double buffering؟
    مرسی

  2. #2
    کاربر جدید آواتار enterprise
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    ISFAHAN
    پست
    11

    نقل قول: درخواست کمک(فوری) 3 سوال

    یکی از کاربردهای متغیر های استاتیک اینه که هنگام خروج از تابع مقدار خودشون را حفظ میکنند(سابقه را نگه میدارند) یعنی تا زمانی که برنامه کار میکنه اینها تو حافظه هستند!
    تفاوتش با گلوبال اینه که به گلوبال سرتاسر برنامه دسترسی داریم ولی استاتیک فقط بلاکی که تعریف شده.

  3. #3
    کاربر جدید
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    اراک
    پست
    29

    نقل قول: درخواست کمک(فوری) 3 سوال

    با سلام. سوال اول و سومتو اطلاعات ندارم ولی راجع به سوال دوم باید بگم جوابی که دوستمون enterprise دادن باید بگم ایشون اشتباه می کنن. چون اصولا مبحث استاتیک ربطی به گلوبال نداره. البته باید گفت که تو جاوا چیزی به عنوان گلوبال نداریم. معادل گلوبال public داریم.هر چند که سوال شما به این موضوع ربطی نداره اما جهت اطلاع اون دوستمون باید بگم که ما 4 تا شیوه دسترسی به اعضا کلاس(متغیرها و متدها) داریم :
    1-public
    2-package
    3-protected
    4-private
    ....... بگذریم.
    و اما...... استاتیک : نمیدونم تا حالا شده از MessageBox یا توابع ریاضی توی جاوا استفاده کنین یا نه؟ اگر دیده باشین نحوه فراخوانی اونا با فراخوانی توابع معمولی یه کم فرق داره. نگاه کنین:
    Math.Abs(-10);
    JOptionPane.showMessageDialog(this,"salam");
    در اینجا Math و JOptionPane با حروف بزرگ اومدن ونشون دهنده اسم کلاسشون هستن. اما یه سوال پیش میاد اونم اینه که چطوری میشه بدون اینکه شی ءی از یه کلاس ساخت به توابع(متدها) و متغیراش دسترسی داشت؟ کلید این موضوع دست استاتیکه!! ویژگی استاتیک اینه که به شیء وابسته نیست یا بهتر بگم اصلا از طریق شیء قابل دسترسی نیست و فقط با نام کلاس استفاده میشه . فرق متغیر استاتیک با متغیر معمولی اینه که متغیر معمولی در هر شیء مقدار منحصر بفردی داره و با هر بار ساختن یک شی از کلاس متغیر معمولی از مقدار پیش فرض خودش شروع میشه . اما اگر هزاران شیء از یه کلاس بسازیم متغیر استاتیک از اول مقداردهی نمیشه و همون مقداری که قبل داشته حفظ می کنه. حالا این عضو استاتیک هم میتونه یک متغیر باشه هم یه متد که میتونن public , private یا یکی از اون چهار حالتو داشته باشن. به این کد یه نگا بکنی می فهمی خروجیشم زیرش هست.

    class TestStatic {

    static int staticcounter = 0;
    int dynamicCounter = 0;

    public void increaseStaticCounter() {
    TestStatic.staticcounter++;
    }

    public void increaseDynamicCounter() {
    dynamicCounter++;
    }

    public int getStaticCounter() {
    return TestStatic.staticcounter;
    }

    public int getDynamicCounter() {
    return dynamicCounter;
    }
    }

    public class Main {
    public static void main(String[] args) {
    TestStatic t1 = new TestStatic();
    TestStatic t2 = new TestStatic();
    t1.increaseDynamicCounter();
    t1.increaseDynamicCounter();
    System.out.println("t1.DynamicCounter = " + t1.getDynamicCounter());
    t2.increaseDynamicCounter();
    t2.increaseDynamicCounter();
    t2.increaseDynamicCounter();
    System.out.println("t2.getDynamicCounter = " + t2.getDynamicCounter());
    t1.increaseStaticCounter();
    t2.increaseStaticCounter();
    t2.increaseStaticCounter();
    t2.increaseStaticCounter();
    System.out.println("t1.getStaticCounter() = " + t1.getStaticCounter());
    System.out.println("t2.getStaticCounter() = " + t2.getStaticCounter());
    TestStatic.staticcounter++;
    TestStatic.staticcounter++;
    System.out.println("t1.getStaticCounter() = " + t1.getStaticCounter());
    System.out.println("t2.getStaticCounter() = " + t2.getStaticCounter());
    }


    }


    اینم خروجیش :
    t1.DynamicCounter = 2
    t2.getDynamicCounter = 3
    t1.getStaticCounter() = 4
    t2.getStaticCounter() = 4
    t1.getStaticCounter() = 6
    t2.getStaticCounter() = 6

  4. #4
    کاربر دائمی آواتار persianshadow
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    پست
    758

    نقل قول: درخواست کمک(فوری) 3 سوال

    Double Buffering یک تکنیک برای ترسیم هست ، از این تکنیک در Swing و java2D بهره برده شده .
    مشکل اینجاست که وقتی شما شکلی رو روی صفحه نمایش کاربر رسم میکنید به شکل یک فریم هست
    و بعد باید فریم بعدی رو ترسیم کنید این کار باعث میشه پرش‌های صورت بگیره که شبیه به چشمک زدن
    صفحه هست برای رفع این مشکل از تکنیک Double Buffering استفاده میشه یعنی یک فریم در حافظه ترسیم
    میشه و اون فریم روی صفحه ترسیم میشه و چون این فریم بر روی رم قرار داره و سرعت ترسیم بالا هست شما
    متوجه چشمک زدن صفحه دیگه نخواهید شد.

  5. #5
    کاربر جدید آواتار enterprise
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    ISFAHAN
    پست
    11

    نقل قول: درخواست کمک(فوری) 3 سوال

    بله شما درست می فرمایید
    آخرین ویرایش به وسیله enterprise : جمعه 26 اردیبهشت 1393 در 10:15 صبح

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

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