💡 برای استفاده از متغیرهای نمونه،متدها یا سازنده های کلاسی که در ان قرار داریم از کلمه کلیدی this استفاده میکنیم.
💡 با استفاده از کلمه کلیدی this می توانیم به اعضای کلاسمون از قبیل سازنده ها،متدها و متغیر ها اشاره کنیم.
💡 نکته : کلمه کلیدی this تنها و فقط! برای صدازدن متغیرهای نمونه،متدها و سازنده های کلاسمون استفاده میشود.
یادآوری :
💠 متغیرهای نمونه همان متغیرهایی هستند که در بدنه کلاس تعریف میشوند.
💠 پارامترها در متد و سازنده ها همان متغیرهای محلی هستند که تنها بدنه متدها و سازنده ها قابل دسرس میباشند.
متدوال ترین استفاده از کلمه کلیدی this: (خیلی مهم):
متدوال ترین کاربرد کلمه کلیدی this در جاوا برای فرق گذاشتن بین متغیرهای نمونه و متغیر های محلی هم نام درون متد و سازنده های یک کلاس است.
یعنی هر وقت در یک متد یا سازنده متغیر محلی داشتیم که هم نام با نام متغیر نمونه کلاس بود و خواستیم از هر دو متغیر در یک متد یا سازنده خود استفاده کنیم، برای مشخص نمودن متغیر نمونه از متغیر محلی همنام ،متغیر نمونه را با کلمه کلیدی this صدا میزنیم،با این کار به برنامه اعلام میکنیم که منظور ما متغیر نمونه کلاس است.
مثال:
package javalike ; class Student { int age; Student(int age) { this.age = age; } } |
✔ یک کلاس به نام Student که دارای یک متغیر نمونه به نام age و یک سازنده پارامتردار است،داریم.در این مثال کلاس ما یک سازنده براش تعریف کردیم که پارامتر آن یک عدد از نوع صحیح که همنام متغیر نمونه کلاس است داریم، در بدنه سازنده قصد داریم مقدار متغیری که از پارامتر ورودی سازنده دریافت کرده ایم درون متغیر نمونه کلاس بریزیم! چون هم متغیر محلی سازنده و هم متغیر نمونه کلاس همنام هست برای تفکیک متغیر نمونه و متغیر محلی همنام از یکدیگر ،متغیر نمونه کلاس را با کلمه کلیدی this صدا میزنیم.
✔ با این روش جاوا میدونه که متغیر آبی رنگ متغیر نمونه و متغیر قهوه ای رنگ متغیر محلی است حتی اگر همنام باشند!
در دوره پیشرفته برنامه نویسی جاوا به صورت ویدئویی به موضوع کلمه کلیدی this در جاواپرداخته ایم.
مثال:
package javalike; class Student { String name; public Student(String name, int age, String id) { } public void setNum(double num) { this.num = num; } public void print() { System.out.println("Name is " + name); } public static void main(String[] args) { Student st = new Student("Ali", 22, "921122546"); st.setNum(18.01); } |
خروجی:
Name is Ali String name; |
توضیحات کد بالا:
✔ در این کلاس 4 متغیر نمونه در بدنه کلاس تعریف کرده ایم.
public Student(String name, int age, String id) { } |
✔ در سازنده کلاس 3 پارامتر همنام با متغیر نمونه وجود دارد.
✔ در بدنه سازنده قصد داریم هر یک از پارامترهای سازنده را به یکی از متغیر های نمونه نسبت دهیم.
✔ چون پارامترهای سازنده با متغیرهای نمونه همنام هستند،متغیر های نمونه را در بدنه سازنده با کلمه کلیدی this صدا زده ایم.
public void setNum(double num) { this.num = num; } |
✔ در متد setNum یک پارامتر از نوع اعشاری همنام با متغیر نمونه وجود دارد. کار این متد اینه که یک عدد اعشاری از ورودی میگیرد و میریزد داخل متغیر نمونه،از انجایی که متغیر محلی این متد و متغیر نمونه همنام هستند ،متغیر نمونه را با کلمه کلیدی this صدا میزنیم و مقدار متغیر محلی رو بهش نسبت میدهیم.
✔ در سازنده کلاس و متد setNum چون نام پارامترها(متغیرهای محلی) با نام متغیر نمونه همنام است برای دسرسی به متغیرهای نمونه و تفکیک متغیر نمونه از متغیر محلی،متغیر نمونه را با کلمه کلیدی this صدا زدیم.
public void print() { System.out.println("Name is " + name); } |
✔ در متد print چون خبری از متغیر محلی همنام با متغیر نمونه کلاس نیست ،دیگر نیاز نیست که متغیرهای نمونه را با کلمه کلیدی this صدا بزنیم.
public static void main(String[] args) { Student st = new Student("Ali", 22, "921122546"); st.setNum(18.01); } |
✔ در متد main یک شی از کلاس Student ساخته و سازنده ان را مقدار دهی کرده ایم.
✔ با استفاده از شی ساخته شده از کلاس متدها setNum و print را صدا کرده ایم.
✔ چون متدsetNum یک پارامتر از نوع اعشار داشت هنگام صدا زدن آن را مقدار دهی میکنیم.
موفق و پیروز باشید 😊🌹🌸🌷🌷🌷🌺🌻🌼
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)
لینک دانلود
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690
بستن دیگر باز نشو! |