JAVAPRO_IR Telegram 4444
📌 Inner Classes و Anonymous Classes در جاوا

🔹 Inner Class چیست؟

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

انواع Inner Class:

1. Member Inner Class
کلاس به‌صورت مستقیم داخل کلاس بیرونی تعریف میشه.
2. Static Nested Class
مثل Member Inner Class هست ولی با static تعریف میشه و به instance کلاس بیرونی نیاز نداره.
3. Local Inner Class
کلاسی که داخل یک متد تعریف میشه.
4. Anonymous Inner Class
کلاسی بدون نام که معمولاً برای پیاده‌سازی سریع یک اینترفیس یا کلاس انتزاعی استفاده میشه.


📖 مثال ۱: Member Inner Class


class Outer {
private String message = "Hello from Outer!";

class Inner {
void printMessage() {
System.out.println(message); // دسترسی مستقیم به فیلد Outer
}
}
}

public class Main {
public static void main(String[] args) {
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner(); // ساخت inner class
inner.printMessage();
}
}


👉 در این مثال، Inner به متغیرهای کلاس بیرونی (`Outer`) دسترسی مستقیم داره.


📖 مثال ۲: Static Nested Class


class Outer {
static class Nested {
void display() {
System.out.println("Static Nested Class");
}
}
}

public class Main {
public static void main(String[] args) {
Outer.Nested nested = new Outer.Nested(); // بدون نیاز به instance از Outer
nested.display();
}
}


👉 اینجا چون کلاس داخلی static هست، دیگه به نمونه‌ای از Outer نیاز نداره.


📖 مثال ۳: Anonymous Inner Class


interface Greeting {
void sayHello();
}

public class Main {
public static void main(String[] args) {
Greeting g = new Greeting() {
@Override
public void sayHello() {
System.out.println("Hello from Anonymous Inner Class!");
}
};
g.sayHello();
}
}


👉 اینجا بدون ساخت یک کلاس جداگانه برای `Greeting`، همون لحظه یک کلاس بی‌نام ایجاد و استفاده کردیم. این تکنیک قبل از لامبداها Java 8 خیلی پرکاربرد بود.


جمع‌بندی

* Inner Class
برای کدی که به کلاس بیرونی وابسته است عالیه.
* Static Nested Class
شبیه Inner Class ولی مستقل از نمونه کلاس بیرونی.
* Local Inner Class
برای منطق موقت داخل متدهاست.
* Anonymous Inner Class
برای پیاده‌سازی سریع اینترفیس‌ها یا کلاس‌های انتزاعی به کار میره.

#کاربرـپیشرفته


🆔 @javapro_ir
🆔 @group_javapro
👍4🙏1



tgoop.com/javapro_ir/4444
Create:
Last Update:

📌 Inner Classes و Anonymous Classes در جاوا

🔹 Inner Class چیست؟

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

انواع Inner Class:

1. Member Inner Class
کلاس به‌صورت مستقیم داخل کلاس بیرونی تعریف میشه.
2. Static Nested Class
مثل Member Inner Class هست ولی با static تعریف میشه و به instance کلاس بیرونی نیاز نداره.
3. Local Inner Class
کلاسی که داخل یک متد تعریف میشه.
4. Anonymous Inner Class
کلاسی بدون نام که معمولاً برای پیاده‌سازی سریع یک اینترفیس یا کلاس انتزاعی استفاده میشه.


📖 مثال ۱: Member Inner Class


class Outer {
private String message = "Hello from Outer!";

class Inner {
void printMessage() {
System.out.println(message); // دسترسی مستقیم به فیلد Outer
}
}
}

public class Main {
public static void main(String[] args) {
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner(); // ساخت inner class
inner.printMessage();
}
}


👉 در این مثال، Inner به متغیرهای کلاس بیرونی (`Outer`) دسترسی مستقیم داره.


📖 مثال ۲: Static Nested Class


class Outer {
static class Nested {
void display() {
System.out.println("Static Nested Class");
}
}
}

public class Main {
public static void main(String[] args) {
Outer.Nested nested = new Outer.Nested(); // بدون نیاز به instance از Outer
nested.display();
}
}


👉 اینجا چون کلاس داخلی static هست، دیگه به نمونه‌ای از Outer نیاز نداره.


📖 مثال ۳: Anonymous Inner Class


interface Greeting {
void sayHello();
}

public class Main {
public static void main(String[] args) {
Greeting g = new Greeting() {
@Override
public void sayHello() {
System.out.println("Hello from Anonymous Inner Class!");
}
};
g.sayHello();
}
}


👉 اینجا بدون ساخت یک کلاس جداگانه برای `Greeting`، همون لحظه یک کلاس بی‌نام ایجاد و استفاده کردیم. این تکنیک قبل از لامبداها Java 8 خیلی پرکاربرد بود.


جمع‌بندی

* Inner Class
برای کدی که به کلاس بیرونی وابسته است عالیه.
* Static Nested Class
شبیه Inner Class ولی مستقل از نمونه کلاس بیرونی.
* Local Inner Class
برای منطق موقت داخل متدهاست.
* Anonymous Inner Class
برای پیاده‌سازی سریع اینترفیس‌ها یا کلاس‌های انتزاعی به کار میره.

#کاربرـپیشرفته


🆔 @javapro_ir
🆔 @group_javapro

BY برنامه نویسی جاوا | Java


Share with your friend now:
tgoop.com/javapro_ir/4444

View MORE
Open in Telegram


Telegram News

Date: |

Public channels are public to the internet, regardless of whether or not they are subscribed. A public channel is displayed in search results and has a short address (link). Developing social channels based on exchanging a single message isn’t exactly new, of course. Back in 2014, the “Yo” app was launched with the sole purpose of enabling users to send each other the greeting “Yo.” Other crimes that the SUCK Channel incited under Ng’s watch included using corrosive chemicals to make explosives and causing grievous bodily harm with intent. The court also found Ng responsible for calling on people to assist protesters who clashed violently with police at several universities in November 2019. Select: Settings – Manage Channel – Administrators – Add administrator. From your list of subscribers, select the correct user. A new window will appear on the screen. Check the rights you’re willing to give to your administrator. Informative
from us


Telegram برنامه نویسی جاوا | Java
FROM American