ناشناس (Anonymous)
کلاس ناشناس (Anonymous Class) یعنی کلاسی بدون نام. همان جا ساخته می شود و همان جا استفاده می شود. معمولاً برای override کردن متدها کاربرد دارد. بنابراین فایل جدید نمی سازیم و سریع می نویسیم. مثل وقتی در بازی، سریع نقش مخصوص می گیری.
کلاس ناشناس چیست؟
کلاس ناشناس از یک کلاس ارث می برد یا یک اینترفیس را پیاده سازی می کند. سپس فوراً شیء ساخته می شود. هدف، تغییر رفتار در همان لحظه است.
// Normal class
class Animal {
public void makeSound() {
System.out.println("Animal sound");
}
}
public class Main {
public static void main(String[] args) {
// Anonymous class that overrides makeSound()
Animal myAnimal = new Animal() {
public void makeSound() {
System.out.println("Woof woof");
}
};
myAnimal.makeSound();
}
}
نکته: بعد از آکولاد پایانی، سمی کالن لازم است؛ چون یک شیء می سازیم.
کلاس ناشناس از اینترفیس
می توان یک اینترفیس را همان جا پیاده سازی کرد. این روش برای کارهای یک باره عالی است.
// Interface
interface Greeting {
void sayHello();
}
public class Main {
public static void main(String[] args) {
// Anonymous class that implements Greeting
Greeting greet = new Greeting() {
public void sayHello() {
System.out.println("Hello, World!");
}
};
greet.sayHello();
}
}
گام های عملی
- کلاس پایه یا اینترفیس لازم را تعریف کن.
- همان جا new بزن و آکولاد باز کن.
- متدها را override کن و شیء را استفاده کن.
نکته: برای مقایسه مفهوم ها، صفحه اینترفیس را ببین. همچنین لینک کلاس ناشناس مرجع همین صفحه است.
جمع بندی سریع
- کلاس ناشناس نام ندارد و فوری استفاده می شود.
- برای override سریع متدها عالی است.
- می تواند از کلاس ارث ببرد یا اینترفیس را پیاده سازی کند.
- بعد از بلوک، سمی کالن را فراموش نکن.