پرش به محتوای اصلی
مسیر تخصصی جاوا و Spring
درخواست پروژهارتباط با ماراهنما
جاواپرو v1.2.16یاد بگیر، تمرین کن، حرفه‌ای بساز
خانهدوره‌هاآموزش رایگانوبلاگمدرس‌هاخدمات
خانه♨️ جلسه نوزدهم - کلاس های داخلی
آموزش برنامه نویسی »

♨️ جلسه نوزدهم - کلاس های داخلی

آموزش ساده و راحت مفهوم کلاس های داخلی در جاوا

۷ دقیقه مطالعهآموزش برنامه نویسی »آموزش جاوا و انجام پروژه های برنامه نویسی
♨️ جلسه نوزدهم - کلاس های داخلی
محتوای منتخب جاواپرو

خلاصه مطلب

آموزش ساده و راحت مفهوم کلاس های داخلی در جاوا
نوع محتوامقاله آموزشی
موضوعآموزش برنامه نویسی »
زمان مطالعه۷ دقیقه
آخرین ویرایش۳۰ اردیبهشت ۱۴۰۴

فهرست جلسات دوره مقدماتی جاوا

مقدمه اول | جاوا چیست؟

مقدمه دوم | تاریخچه جاوا

مقدمه سوم | ویژگی‌های زبان جاوا

جلسه اول | راهنمای دانلود و نصب JDK

جلسه دوم | اجرای یک برنامه جاوا در Notepad

جلسه سوم | راهنمای دانلود و نصب Eclipse

جلسه چهارم | ساخت اولین برنامه جاوا در Eclipse

جلسه پنجم | متغیر ها در جاوا

جلسه ششم | تغییر فونت محیط Eclipse

جلسه هفتم | عملگر‌های پایه ای جاوا

جلسه هشتم | دستورات شرطی

جلسه نهم | اشیا و کلاس ها

جلسه دهم | ورودی گرفتن

جلسه یازدهم | حلقه‌های کنترلی

جلسه دوازدهم | کلمه کلیدی static

جلسه سیزدهم | کلاس Math

جلسه چهاردهم | کلاس String

جلسه پانزدهم | آرایه‌های یک بعدی

جلسه شانزدهم | کنترل سطح دسرسی (Modifiers)

جلسه هفدهم | متدها در جاوا

جلسه هجدهم | کلمه کلیدی this

جلسه نوزدهم | کلاس‌های داخلی

جلسه بیستم | ارث بری در جاوا

جلسه بیست و یکم | کلمه کلیدی final

جلسه بیست و دوم | Overriding در جاوا

جلسه بیست و سوم | Polymorphism( چند ریختی)

جلسه بیست و چهارم | چندریختی را بهتر یادبگیرید

جلسه بیست و پنجم | Abstraction( انتزاع)

جلسه بیست و ششم | Encapsulation(کپسوله سازی)

جلسه بیست و هفتم | اینترفیس (Interface)

جلسه بیست و هشتم | کلاس Random

جلسه بیست و نهم | Exceptions (استثناها)

جلسه سی ام | کار با فایل در جاوا(Files and I/O)

جلسه سی و یکم | کلاس InputStreamReader

جلسه سی و دوم | کلاس OutputStreamWriter

جلسه سی و سوم | کلاس BufferedReader

جلسه سی و چهارم | کلاس BufferedWriter

جلسه سی و پنجم | Serialization در جاوا

جلسه سی و ششم | چندنخی(Multithreading)

جلسه سی و هفتم | آرایه دو بعدی در جاوا

جلسه سی و هشتم | کلاس ArrayList در جاوا

جلسه سی و نهم | Non Access Modifier در جاوا

دوره رایگان مقدماتی زبان جاوا
دوره رایگان مقدماتی زبان جاوا

لیست دوره های آکادمی جاوا پرو

دوره پرتاب | آموزش پیش نیازهای قبل از شروع برنامه نویسیدوره مقدماتی زبان برنامه نویسی جاوادوره جامع شاهکار پیشرفته جاوادوره جامع طلایی Spring Coreدوره آموزش فریمورک Spring Bootدوره پروژه محور Spring Boot - سیستم دانشگاهدوره جامع دژبان Spring securityدوره جامع نخبگان معماری میکروسرویس با Java و Spring Bootمتدهامتغیرهاکلاس
package javalike ;public class Outer_Demo { class Inner_Demo { } }

کلاس های داخلی به دو نوع تقسیم می شوند:

کلاس های داخلی غیر استاتیک: کلاس های داخلی یک مکانیزم امنیتی در جاوا هستند.ما می دانیم که modifier یا سطح دسرسی یک کلاس نمی تواند private باشد.اما اگر ما از یک کلاس به عنوان عضو دیگری از کلاس(کلاس داخلی) استفاده کنیم می توانیم سطح دسرسی کلاس داخلی را private تعریف کنیم. این کار باعث خصوصی سازی اعضای یک کلاس می شود.

کلاس های داخلی بستگی به این که چطور و کجا ازشون استفاده کنیم سه نوع هستند:

کلاس داخلی: ایجاد یک کلاس داخلی خیلی ساده است!شما تنها نیاز دارید یک کلاس را درون کلاس دیگر پیاده سازی! بر خلاف یک کلاس بیرونی یک کلاس داخلی می تواند private باشد،هنگامی که شما یک کلاس داخلی را private تعریف میکنید،در خارج از کلاس بیرونی از طریق شی نمی توان به کلاس داخلی و اعضای آن دسرسی پیدا کرد! برای درک بهتر به دو مثال زیر توجه کنید:

package javalike; class Outer_Demo { private class Inner_Demo { int a = 5; } Inner_Demo in = new Inner_Demo(); } public class Test { public static void main(String[] args) { Outer_Demo out = new Outer_Demo(); System.out.println(out.in.a); } }

خروجی:

خطای کامپایل!

🌕 به خطایی که حین کد زدن در محیط ایکلیپش نمایش داده میشود خطای کامپایل می گوییم.

🌕 به خطایی که بعد از اجرای برنامه نمایش داده می شود خطای زمان اجرا می گوییم.

💠 توضیحات:

✔ در این مثال ما سه کلاس داریم که دو کلاس Outer_Demo و Inner_Demo تو در تو هستند. و کلاس Test که دارای متد main می باشد برای اجرای دستورات برنامه ازش استفاده میکنیم.

private class Inner_Demo { int a = 5; }

✔ در کلاس Outer_Demo یک کلاس داخلی به نام Inner_Demo که از نوع private هستش و یک متغیر صحیح به نام a عضو آن می باشد داریم.

Inner_Demo in = new Inner_Demo();

✔ در بدنه کلاس Outer_Demo یک شی از کلاس داخلی Inner_Demo ساخته ایم ( تا اینجا مشکلی نیست چون در کلاس بیرونی می توان از کلاس داخلی شی ساخت).

public class Test { public static void main(String[] args) { Outer_Demo out = new Outer_Demo(); System.out.println(out.in.a); } }

✔ در کلاس Test قصد داریم یک شی از کلاس بیرونی Outer_Demo بسازیم و از طریق آن به شی کلاس داخلی Inner_Demo به نام in و از طریق شی in به متغیر درون کلاس داخلی Inner_Demo دسرسی پیدا کنیم.

✔ چون کلاس داخلی Inner_Demo از نوع private هستش نمی توان خارج کلاس بیرونی،از طریق شی به ان دسرسی پیدا کرد! تغییرات کد بالا رو در زیر مشاهده کنید:

در مثال زیر که تغییر یافته مثال بالا هست تنها کلاس داخلی Inner_Demo از نوع private نمی باشد! و همان طور که مشاهده میکنید هیچ خطایی در کامپایل و اجرا آن به وجود نیامده است:

package javalike;class Outer_Demo { class Inner_Demo { int a = 5; } Inner_Demo in = new Inner_Demo();}public class Test { public static void main(String[] args) { Outer_Demo out = new Outer_Demo(); System.out.println(out.in.a); }}

خروجی:

5

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

✔ در زیر روش دسرسی به یک کلاس داخلی private در خارج از کلاس بیرونی آمده است: (این مثال تغییر یافته مثال اول می باشد)

package javalike;class Outer_Demo { private class Inner_Demo { int a = 5; } public void print() { Inner_Demo in = new Inner_Demo(); System.out.println("value of a is " + in.a); } }public class Test { public static void main(String[] args) { Outer_Demo out = new Outer_Demo(); out.print(); }}

خروجی:

value of a is 5

✔ در اینجا کلاس داخلی ما private هستش اما تونستیم به مقدار متغیر صحیح a درون ان دسرسی پیدا کنیم.

✔ چگونه؟! کلاس داخلی حتی اگر private هم باشه باز می شود در داخل کلاس بیرونی که در آن قرار دارد از ان شی ساخت! پس ما در متد print یک شی از کلاس داخلی Inner_Demo به نام in ساختیم و از طریق شی ساخته شده به اعضای کلاس داخلی دسرسی پیدا کردیم.حال با ساخت شی از کلاس بیرونی در کلاس Test متد print را صدا زدیم و دستور درون آن بدون خطا اجرا شد.

کلاس داخلی محلی - درون متد: در جاوا ما می توانیم یک کلاس را داخل یک متد و از نوع محلی شبیه متغیرهای محلی تعریف کنیم.دامنه دسرسی به این نوع کلاس محدود به بدنه متد می باشد.پس یک کلاس داخلی محلی تنها در بدنه یک متد قابل تعریف می باشد.

در زیر نحوه پیاده سازی یک کلاس داخلی محلی که درون یک متد تعریف شده است را مشاهده میکنید:

package javalike ;public class OuterClass { public void methodOuter() { class MethodInner_Demo { public void print() { System.out.println("www.javalike1.ir"); } } MethodInner_Demo in = new MethodInner_Demo(); in.print(); } public static void main(String[] args) { OuterClass out = new OuterClass(); out.methodOuter(); } }

خروجی:

www.javalike1.ir

✔ رنگ آبی محدوده کلاس بیرونی ما می باشد.

✔ رنگ قرمز محدوده کلاس داخلی محلی ما که درون متدی از کلاس بیرونی قرار گرفته است.

✔ همان طور که مشاهده میکنید ما یک کلاس داخلی محلی به نام MethodInner_Demo تعریف کرده ایم که یک متد درون خود داره و یک پیامی چاپ میکند.حال در متد methodOuter کلاس بیرونی OuterClass یک شی به نام in از کلاس داخلی محلی MethodInner_Demo ساخته ایم و از طریق شی in متد print درون کلاس داخلی محلی MethodInner_Demo را صدا زده ایم،در پایان یک شی از کلاس بیرونی OuterClass ساخته و از طریق شی ساخته شده از آن متد methodOuter صدا میزنیمفبا این کار دستورات درون این متد اجرا و پیام در خروجی چاپ می شود.

کلاس داخلی بی نام : در این جلسه زوده بهش بپردازیم! در مباحث شی گرایی و اینترفیس آن را بررسی میکنیم.

کلاس داخلی استاتیک : یک کلاس داخلی استاتیک یک کلاس تو در تو است که مانند متغیرها و متدهای استاتیک یک کلاس،عضو استاتیک کلاس بیرونی می باشد.از خصوصیات کلاس داخلی استاتیک صدازدن و دسرسی به ان مانند متغیرها و متدهای استاتیک یک کلاس بدون نیاز به نمونه سازی و شی ساختن از کلاسی که درونش قرار دارد می باشد.

نحوه پیاده سازی یک کلاس داخلی استاتیک را ببینید:

package javalike;public class OuterClass { static class innerClass { }}
آموزش آسان و ساده زبان برنامه نویسی جاوا
آموزش آسان و ساده زبان برنامه نویسی جاوا

این جلسه آموزشی را می توانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید. این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید) لینک دانلود

مشاهده لینک اصلی
تصویر مرتبط با ♨️ جلسه نوزدهم - کلاس های داخلی
مشاهده لینک اصلی
تصویر مرتبط با ♨️ جلسه نوزدهم - کلاس های داخلی
عضو کانال تلگرام
برچسب‌هاآموزش برنامه نویسی »آموزش زبان جاوا »آموزش جاوا »آموزش کلاس های داخلی در جاوانحوه نوشتن کلاس داخلیکلاس های داخلی به چند نوع تقسیم می شوندکلاس های داخلی غیر استاتیک در جاواکلاس های داخلی استاتیک در جاواکلاس های داخلی بی نام در جاواآموزش زبان جاواآموزش آسان جاواجاوازبان جاواکلاس های داخلی در جاواکلاس های تودرتو در جاوا
دسترسی سریع

فهرست مطلب

۱فهرست جلسات دوره مقدماتی جاوا۲مقدمه اول | جاوا چیست؟۳مقدمه دوم | تاریخچه جاوا۴مقدمه سوم | ویژگی‌های زبان جاوا۵جلسه اول | راهنمای دانلود و نصب JDK۶جلسه دوم | اجرای یک برنامه جاوا در Notepad۷جلسه سوم | راهنمای دانلود و نصب Eclipse۸جلسه چهارم | ساخت اولین برنامه جاوا در Eclipse۹جلسه پنجم | متغیر ها در جاوا۱۰جلسه ششم | تغییر فونت محیط Eclipse۱۱جلسه هفتم | عملگر‌های پایه ای جاوا۱۲جلسه هشتم | دستورات شرطی۱۳جلسه نهم | اشیا و کلاس ها۱۴جلسه دهم | ورودی گرفتن۱۵جلسه یازدهم | حلقه‌های کنترلی۱۶جلسه دوازدهم | کلمه کلیدی static۱۷جلسه سیزدهم | کلاس Math۱۸جلسه چهاردهم | کلاس String۱۹جلسه پانزدهم | آرایه‌های یک بعدی۲۰جلسه شانزدهم | کنترل سطح دسرسی (Modifiers)۲۱جلسه هفدهم | متدها در جاوا۲۲جلسه هجدهم | کلمه کلیدی this۲۳جلسه نوزدهم | کلاس‌های داخلی۲۴جلسه بیستم | ارث بری در جاوا۲۵جلسه بیست و یکم | کلمه کلیدی final۲۶جلسه بیست و دوم | Overriding در جاوا۲۷جلسه بیست و سوم | Polymorphism( چند ریختی)۲۸جلسه بیست و چهارم | چندریختی را بهتر یادبگیرید۲۹جلسه بیست و پنجم | Abstraction( انتزاع)۳۰جلسه بیست و ششم | Encapsulation(کپسوله سازی)۳۱جلسه بیست و هفتم | اینترفیس (Interface)۳۲جلسه بیست و هشتم | کلاس Random۳۳جلسه بیست و نهم | Exceptions (استثناها)۳۴جلسه سی ام | کار با فایل در جاوا(Files and I/O)۳۵جلسه سی و یکم | کلاس InputStreamReader۳۶جلسه سی و دوم | کلاس OutputStreamWriter۳۷جلسه سی و سوم | کلاس BufferedReader۳۸جلسه سی و چهارم | کلاس BufferedWriter۳۹جلسه سی و پنجم | Serialization در جاوا۴۰جلسه سی و ششم | چندنخی(Multithreading)۴۱جلسه سی و هفتم | آرایه دو بعدی در جاوا۴۲جلسه سی و هشتم | کلاس ArrayList در جاوا۴۳جلسه سی و نهم | Non Access Modifier در جاوا
ادامه مسیر

پیشنهاد جاواپرو

موضوع را با آموزش‌های مرتبط ادامه دهید و نکته‌های کاربردی را در مسیر خود نگه دارید

مشاهده دوره‌ها
مطالب پیشنهادی

ادامه مطالعه

xدسته‌بندی نشده
۱۱ دی ۱۳۹۸ مطالعه کوتاه

x

پادکست شماره 3 – راه های کسب درآمد از برنامه نویسی

مطالعه مطلب
پادکست شماره 3 - راه های کسب درآمد از برنامه نویسیپادکست
۲۹ اردیبهشت ۱۴۰۴ مطالعه کوتاه

پادکست شماره 3 - راه های کسب درآمد از برنامه نویسی

در این پادکست برنامه نویسی به شیوه ها و راه های کسب درآمد از برنامه نویسی پرداخته ایم. یک کاغذ و قلم بردارید و به پادکست گوش بدید.

مطالعه مطلب
پادکست شماره 2 - چگونه وارد فضای برنامه نویسی شویم؟پادکست
۲۹ اردیبهشت ۱۴۰۴ مطالعه کوتاه

پادکست شماره 2 - چگونه وارد فضای برنامه نویسی شویم؟

در این پادکست برنامه نویسی یاد میگیریم که چگونه وارد فضای برنامه نویسی شویم و تخصص برنامه نویسی را به دست آوریم.

مطالعه مطلب
جاواپرومرجع تخصصی یادگیری و توسعهٔ جاوا

تجربه‌ای منظم، ساده و حرفه‌ای برای یادگیری عمیق جاوا، Spring و مهندسی نرم‌افزار؛ قابل استفاده در موبایل، تبلت و دسکتاپ

یادگیری

همه دوره‌هاآموزش رایگانمسیر یادگیریمدرس‌ها

جاواپرو

درباره ماخدمات تخصصیدرخواست پروژهبلاگ فنی

پشتیبانی

تماس با ماپرسش‌های متداولقوانین و حریم خصوصیبروزرسانی‌های جاواپروثبت تیکت
خرید امنپرداخت فقط در درگاه رسمیپشتیبانی آموزشیمسیر ارتباط شفاف و پیگیری‌پذیردسترسی پایداروب‌اپ واکنش‌گرا روی همه دستگاه‌ها
© ۱۴۰۵ جاواپرو؛ همه حقوق محفوظ استتوسعه توسط پایاپینگ
خانهدوره‌هاسبد