استفاده از کلاس داخلی با نام (Named Inner Class) برای پاسخگویی به رویداد در جاوا :
در زبان برنامه نویسی جاوا، مفهوم کلاس داخلی (Inner Class) به معنی تعریف یک کلاس داخلی درون یک کلاس دیگر است. این کلاس داخلی قابل دسترسی از بیرون کلاس خارجی است و میتواند به تمامی اعضا و رویدادهای آن دسترسی داشته باشد. یک نوع خاص از کلاس داخلی که میتواند برای پاسخگویی به رویدادها استفاده شود، کلاس داخلی با نام (Named Inner Class) است.
استفاده از کلاس داخلی با نام به برنامه نویس امکان میدهد که یک رویداد را به صورت محلی درون یک کلاس داخلی تعریف کند و به آن رویداد درون کلاس خارجی دسترسی داشته باشد. این امر به برنامه نویس امکان میدهد تا کد را به شکلی سادهتر و قابل خواندنتر نوشته و از پیچیدگیهای مربوط به مدیریت رویدادها درون کلاس خارجی خود خودداری کند.
برای استفاده از کلاس داخلی با نام در جاوا، ابتدا باید یک کلاس داخلی با نام تعریف شود. برای این کار، کلاس داخلی باید درون بدنه کلاس خارجی تعریف شود و به آن یک نام منحصربفرد داده شود. سپس میتوان از این کلاس داخلی برای تعریف و پاسخگویی به رویدادها استفاده کرد.
برای مثال، فرض کنید یک برنامهای داریم که یک دکمه (Button) را نمایش میدهد و میخواهیم رویداد کلیک بر روی این دکمه را پاسخگویی کنیم. در صورت استفاده از کلاس داخلی با نام، میتوانیم یک کلاس داخلی با نام ButtonClickListener تعریف کنیم که از اینترفیس ActionListener پیش فرض جاوا پیروی کند. سپس میتوانیم یک شی از این کلاس داخلی را برای دکمه تعریف کنیم و آن را به عنوان یک شنونده (Listener) برای رویداد کلیک دکمه استفاده کنیم.
کد زیر نمونهای از استفاده از کلاس داخلی با نام برای پاسخگویی به رویداد کلیک دکمه را نشان میدهد:
public class ButtonExample {
private Button button;
public ButtonExample() {
button = new Button(“Click Me”);
button.addActionListener(new ButtonClickListener());
}
class ButtonClickListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.out.println(“Button Clicked!”);
}
}
}
در این کد، کلاس ButtonExample یک کلاس خارجی است که یک دکمه را تعریف میکند و از کلاس داخلی با نام ButtonClickListener برای پاسخگویی به رویداد کلیک دکمه استفاده میکند. درون کلاس ButtonClickListener، رویداد actionPerformed تعریف شده و در صورت کلیک بر روی دکمه، پیام “Button Clicked!” در خروجی چاپ میشود.
با استفاده از کلاس داخلی با نام در جاوا، میتوان به سادگی و با کد قابل خواندنتر و قابل نگهداریتری، به پاسخگویی به رویدادها پرداخت و از پیچیدگیهایی که در صورت استفاده از کلاس خارجی برای پاسخگویی به رویدادها به وجود میآید، خودداری کرد.