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: |

A few years ago, you had to use a special bot to run a poll on Telegram. Now you can easily do that yourself in two clicks. Hit the Menu icon and select “Create Poll.” Write your question and add up to 10 options. Running polls is a powerful strategy for getting feedback from your audience. If you’re considering the possibility of modifying your channel in any way, be sure to ask your subscribers’ opinions first. SUCK Channel Telegram In the next window, choose the type of your channel. If you want your channel to be public, you need to develop a link for it. In the screenshot below, it’s ”/catmarketing.” If your selected link is unavailable, you’ll need to suggest another option. The public channel had more than 109,000 subscribers, Judge Hui said. Ng had the power to remove or amend the messages in the channel, but he “allowed them to exist.” The optimal dimension of the avatar on Telegram is 512px by 512px, and it’s recommended to use PNG format to deliver an unpixelated avatar.
from us


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