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

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

در این آموزش با مفهوم کلمه کلیدی static آشنا می شویم

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

خلاصه مطلب

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

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

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

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

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

جلسه اول | راهنمای دانلود و نصب 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 در جاوا

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

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

💡 کلمه کلیدی static برای مدیریت حافظه استفاده می شود.

💡 کلمه کلیدی استاتیک در جاوا می تواند برای متغیرها و متدهایی که متعلق به یک کلاس هستند (متغیر های نمونه و متد هایی که در بدنه کلاس تعریف می شوند) استفاده شود.پس متغیر های محلی نمی توانند استاتیک باشند.

💠 خب چطور یک متغیر را static اعلام کنیم؟

اعلام یک متغیر از نوع استاتیک
اعلام یک متغیر از نوع استاتیک
متغیر استاتیک در جاوا
متغیر استاتیک در جاوا
متغیر static در جاوا
متغیر static در جاوا

🔵 دسرسی اشیای ساخته شده از یک کلاس به متغیر استاتیک:

💡 وقتی یک متغیر یا متد در کلاس استاتیک اعلام می شود دیگر نیاز نیست برای دسرسی به آن متغیر یا متد شی از کلاس ساخت تنها کافیست مستقیم با استفاده از نام کلاس و کاراکتر نقطه (.) به ان متغیر یا متد دسرسی پیدا کرد البته بدون نام کلاس هم می شود مستقیم تنها با بکار بردن نام متغیر از آن استفاده کرد اما در جاهایی که متغیر محلی هم نام متغیر نمونه کلاس خود داریم باید از نام کلاسبرای صدا زدن متغیر یا متد استفاده کنیم:

در مثال زیر متغیر و متد استاتیک یک کلاس را در متد main بدون شی ساختن و بکار بردن مستقیم نام کلاس صدا زده ایم.

package tutorial; public class Cat { static String n; int age; static void eat() { System.out.println("cat Eating"); } void sleep() { System.out.println("cat sleeping"); } public static void main(String[] args) { n = "pishy"; eat(); System.out.println(n); }}

خروجی:

cat Eating pishy

✔ همان طور که مشاهده می کنید چون متد ()eat و متغیر n استاتیک هستند دیگر برای صدا زدنشون نیاز به ساختن شی نیست. ✔ حالا در پایین می خواهیم از متد ()sleep استفاده کنیم چون استاتیک نیست باید با استفاده از شی ساخته شده از کلاس آن را صدا زد:

package tutorial; public class Cat { static String n; int age; static void eat() { System.out.println("cat Eating"); } void sleep() { System.out.println("cat sleeping"); } public static void main(String[] args) { Cat cat=new Cat(); cat.sleep(); cat.age=6; n = "pishy"; eat(); System.out.println("name= "+n+" , "+"age= "+cat.age); }}

خروجی:

cat sleeping cat Eating name= pishy , age= 6

و در مثال زیر چون از متغیر محلی همنام با متغیر نمونه n در متد main داریم دیگه واجب میشه که برای صدا زدن متغیر استاتیک از نام کلاس و نقطه(.) و اسم متغیر استفاده کنیم:

package tutorial; public class Cat { static String n; int age; static void eat() { System.out.println("cat Eating"); } void sleep() { System.out.println("cat sleeping"); } public static void main(String[] args) { Cat cat=new Cat(); cat.sleep(); cat.age=6; n = "pishy"; String n="bobo"; eat(); System.out.println("name= "+n); System.out.println("name= "+Cat.n); }}

خروجی:

cat sleeping cat Eating name= bobo name= pishy

توضیحات:

n = "pishy"; String n="bobo";
System.out.println("name= "+n); System.out.println("name= "+Cat.n);

✔ همان طور که گفتیم اگر همزمان یک متغیر محلی همنام با متغیر نمونه استاتیک وجود داشت ناچار هستیم از نام کلاس برای صدا زدن متغیر استفاده کنیم.

مزایای متغیرهای استاتیک: در صرفه جویی حافظه برنامه شما موثر است.

در دو مثال زیر تفاوت متغیر استاتیک و غیر استاتیک را درک خواهیم کرد:

وقتی متغیر غیر استاتیک باشد:

package javalike ;class Counter { int count = 0; Counter() { count++; System.out.println(count); } public static void main(String args[]) { Counter c1 = new Counter(); Counter c2 = new Counter(); Counter c3 = new Counter(); } }

خروجی:

1 1 1

✔ ما در این مثال متغیر نمونه count را غیر استاتیک تعریف کردیم و درون سازنده کلاس دستور افزایش یکی یکی این متغیر را پیاده سازی کردیم که با هربار شی ساختن این متغیر مقدارش افزایش پیدا کند اما چون با هر بار شی ساختن یک کپی از ویژگی ها و رفتار های غیر استاتیک کلاس برای شی ایجاد می شود، پس با هربار شی ساختن یک count با مقدار صفر برای شی درنظر گرفته می شود که در سازنده کلاس وقتی count++ می شود مقدارش یکی اضاف و به 1 تغییر داده می شود و سپس در خروجی نمایش داده می شود.

وقتی متغیر استاتیک باشد:

package javalike ;class Counter { static int count = 0; Counter() { count++; System.out.println(count); } public static void main(String args[]) { Counter c1 = new Counter(); Counter c2 = new Counter(); Counter c3 = new Counter(); } }

خروجی:

1 2 3

✔ ما در این مثال متغیر نمونه count را استاتیک تعریف کردیم و درون سازنده کلاس دستور افزایش یکی یکی این متغیر را پیاده سازی کردیم که با هربار شی ساختن این متغیر مقدارش افزایش پیدا کند،چون متغیر استاتیک هست تنها یک حافظه به متغیر اختصاص داده می شود و همه اشیای ساخته شده از کلاس به این یک متغیر دسرسی دارند و اگر با یک شی مقدار این متغیر را تغییر دهیم مقدار متغیر برای سایر اشیا نیز تغییر میکند. و در اینجا وقتی c1 ساخته می شود مقدار count برابر 1و با ساخته شدن c2 مقدار count برابر 2 و در نهایت با ساخته شدن شی c3 مقدار count برابر 3 می شود.

✔ متد ها نیز می توانند مانند متغیر ها استاتیک باشند اگر در ابتدای متد از کلمه کلیدی static استفاده کنیم.

✔ مانند متغیر ها اگر متد استاتیک باشد برای استفاده و صدا زدن متد نیاز به شی ساختن از کلاس نیست.

✔ متدهای استاتیک برای دسرسی به متغیر های استاتیک و دستکاری انها به کار می رود.

package tutorial; public class Cat { static String name; int age; static void setName(String n) { name=n; } public Cat(){ name="miuuuu"; } public void show(){ System.out.println("name="+name); } public static void main(String[] args) {Cat c1=new Cat();Cat.setName("pishi"); c1.show(); }}

خروجی:

name=pishi

توضیحات:

static String name; int age;

✔ تعریف دو متغیر یکی از نوع رشته و استاتیک و دیگری از نوع عدد صحیح و غیر استاتیک

static void setName(String n) { name=n; }

✔ این متد که از نوع void و استاتیک می باشد ، یک رشته(String) می گیرد و متغیر رشته name که استاتیک هم می باشد مقدار دهی میکند.

public Cat(){ name="miuuuu"; }

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

public void show(){ System.out.println("name="+name); } //این متد مقدار متغیر name را در خروجی چاپ میکند. public static void main(String[] args) {Cat c1=new Cat();Cat.setName("pishi"); c1.show(); }

✔ برای اجرای برنامه نیاز به متد main داریم که درآن یک شی از کلاس Cat ساخته ایم و در خط بعد چون متد setName استاتیک هست نیازی نیست با شی آن را صدا بزنیم فقط کافیست با نام کلاس ،نقطه(.) و نام متد آن را فراخوانی کنیم.

✔ درپایان با متد show مقدار متغیر را در خروجی چاپ میکنیم.

💡 یک نکته در مورد متدهای استاتیک:

متد های استاتیک نمی توانند در بدنه خود متغیر های غیر استاتیک را دستکاری کنند!!!

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

آموزش آسان و ساده زبان برنامه نویسی جاوا
آموزش آسان و ساده زبان برنامه نویسی جاوا

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

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

فهرست مطلب

۱فهرست جلسات دوره مقدماتی جاوا۲مقدمه اول | جاوا چیست؟۳مقدمه دوم | تاریخچه جاوا۴مقدمه سوم | ویژگی‌های زبان جاوا۵جلسه اول | راهنمای دانلود و نصب 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 و مهندسی نرم‌افزار؛ قابل استفاده در موبایل، تبلت و دسکتاپ

یادگیری

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

جاواپرو

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

پشتیبانی

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