با استفاده از بلاکهای مقداردهی (initializer blocks) و کلاسهای ناشناس در جاوا، یک لیست از Runnable بسازید که هر Runnable شمارهٔ مربوط به خودش را چاپ کند و سپس همهٔ Runnableها را اجرا کنید.
52.0 بازدید آخرین ویرایش در 175 روز قبل ساعت 18:49 0.0
در جاوا از java.util.ArrayList برای نگهداری Runnableها استفاده کنید و داخل یک حلقه برای هر مقدار i یک کلاس ناشناس new Runnable() ایجاد کنید؛ داخل آن میتوانید یک فیلد int id تعریف کرده و با یک بلاک مقداردهی (مثلاً { id = i; }) مقدار i را به فیلد اختصاص دهید تا هر شیء شمارهٔ درست خود را حفظ کند. سپس متد run را پیادهسازی کرده و در آن شماره را چاپ کنید؛ در پایان لیست را پیمایش و هر Runnable را با صدا زدن run یا اجرای آن در یک Thread اجرا کنید. نکته: استفاده از بلاک مقداردهی در کلاس ناشناس کمک میکند از مشکلات گرفتن متغیر حلقه بهصورت نهایی جلوگیری کنید؛ این تمرین برای Java SE و مفاهیم اولیهٔ کلاسهای ناشناس و بلاکهای initializer مناسب است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
این روش با استفاده از بلاک مقداردهی در کلاس ناشناس، از مشکلات capture متغیرهای حلقه جلوگیری میکند و هر Runnable مقدار خود را چاپ میکند. با افزودن فیلد id و استفاده از یک بلاک مقداردهی در داخل کلاس ناشناس، مقدار i بهطور ایمن به فیلد اختصاص داده میشود تا هر شیء شمارهٔ درست خود را حفظ کند. پس از ساخت لیست با ArrayList، میتوانید حلقهای بنویسید که در هر تکرار یکی از Runnableها را اجرا کند یا آنها را در Threadهای جداگانه اجرا کنید. این تمرین برای Java SE و مفاهیم پایهٔ کلاسهای ناشناس و بلاکهای مقداردهی مناسب است و به درک نحوه حفظ مقدار در داخل حلقه کمک میکند.
گزارش