יכול להיות שימוש רב ב Java מילת מפתח זו . ב-Java, זה א משתנה התייחסות המתייחס לאובייקט הנוכחי.
שימוש ב-Java מילת מפתח זו
הנה נתון 6 השימושים של Java מילת מפתח זו.
- זה יכול לשמש כדי להפנות את משתנה מופע המחלקה הנוכחי.
- זה יכול לשמש כדי להפעיל את שיטת המחלקה הנוכחית (במרומז)
- זה() יכול לשמש כדי להפעיל את בנאי המחלקה הנוכחית.
- ניתן להעביר את זה כארגומנט בקריאת השיטה.
- ניתן להעביר את זה כארגומנט בקריאת הבנאי.
- זה יכול לשמש כדי להחזיר את מופע המחלקה הנוכחי מהשיטה.
הַצָעָה: אם אתה מתחיל ב-Java, חפש רק שלושה שימושים במילת מפתח זו.
1) זה: להתייחס למשתנה מופע המחלקה הנוכחי
ניתן להשתמש במילת המפתח זה כדי להפנות את משתנה מופע המחלקה הנוכחי. אם יש אי בהירות בין משתני המופע והפרמטרים, מילת מפתח זו פותרת את בעיית העמימות.
הבנת הבעיה ללא מילת מפתח זו
בואו נבין את הבעיה אם לא נשתמש במילת מפתח זו לפי הדוגמה המופיעה להלן:
אלגוריתם תזמון עגול רובין
class Student{ int rollno; String name; float fee; Student(int rollno,String name,float fee){ rollno=rollno; name=name; fee=fee; } void display(){System.out.println(rollno+' '+name+' '+fee);} } class TestThis1{ public static void main(String args[]){ Student s1=new Student(111,'ankit',5000f); Student s2=new Student(112,'sumit',6000f); s1.display(); s2.display(); }}בדוק את זה עכשיו
תְפוּקָה:
0 null 0.0 0 null 0.0
בדוגמה שלמעלה, פרמטרים (ארגומנטים פורמליים) ומשתני מופע זהים. לכן, אנו משתמשים במילת מפתח זו כדי להבחין בין משתנה מקומי למשתנה מופע.
פתרון הבעיה לעיל באמצעות מילת מפתח זו
class Student{ int rollno; String name; float fee; Student(int rollno,String name,float fee){ this.rollno=rollno; this.name=name; this.fee=fee; } void display(){System.out.println(rollno+' '+name+' '+fee);} } class TestThis2{ public static void main(String args[]){ Student s1=new Student(111,'ankit',5000f); Student s2=new Student(112,'sumit',6000f); s1.display(); s2.display(); }}בדוק את זה עכשיו
תְפוּקָה:
111 ankit 5000.0 112 sumit 6000.0
אם משתנים מקומיים (ארגומנטים פורמליים) ומשתני מופע שונים, אין צורך להשתמש במילת מפתח זו כמו בתוכנית הבאה:
תוכנית שבה מילת מפתח זו אינה נדרשת
class Student{ int rollno; String name; float fee; Student(int r,String n,float f){ rollno=r; name=n; fee=f; } void display(){System.out.println(rollno+' '+name+' '+fee);} } class TestThis3{ public static void main(String args[]){ Student s1=new Student(111,'ankit',5000f); Student s2=new Student(112,'sumit',6000f); s1.display(); s2.display(); }}בדוק את זה עכשיו
תְפוּקָה:
111 ankit 5000.0 112 sumit 6000.0
גישה טובה יותר להשתמש בשמות משמעותיים עבור משתנים. אז אנחנו משתמשים באותו שם למשל משתנים ופרמטרים בזמן אמת, ותמיד משתמשים במילת המפתח הזו.
2) זה: להפעיל את שיטת המחלקה הנוכחית
אתה יכול להפעיל את השיטה של המחלקה הנוכחית באמצעות מילת המפתח הזו. אם אינך משתמש במילת המפתח זה, המהדר מוסיף את מילת המפתח הזו אוטומטית תוך כדי הפעלת השיטה. בואו נראה את הדוגמה
class A{ void m(){System.out.println('hello m');} void n(){ System.out.println('hello n'); //m();//same as this.m() this.m(); } } class TestThis4{ public static void main(String args[]){ A a=new A(); a.n(); }}בדוק את זה עכשיו
תְפוּקָה:
hello n hello m
3) this() : להפעיל את בנאי המחלקה הנוכחית
ניתן להשתמש בקריאת הבנאי this() כדי להפעיל את בנאי המחלקה הנוכחי. הוא משמש לשימוש חוזר בקונסטרוקטור. במילים אחרות, הוא משמש לשרשור בנאים.
קורא לבנאי ברירת המחדל מבנאי בעל פרמטר:
הדפס דפוס כוכבים
class A{ A(){System.out.println('hello a');} A(int x){ this(); System.out.println(x); } } class TestThis5{ public static void main(String args[]){ A a=new A(10); }}בדוק את זה עכשיו
תְפוּקָה:
איך לשדרג ג'אווה
hello a 10
קורא לבנאי בעל פרמטר מבנאי ברירת המחדל:
class A{ A(){ this(5); System.out.println('hello a'); } A(int x){ System.out.println(x); } } class TestThis6{ public static void main(String args[]){ A a=new A(); }}בדוק את זה עכשיו
תְפוּקָה:
5 hello a
שימוש אמיתי בקריאה לבנאי() זו
יש להשתמש בקריאת הבנאי this() כדי לעשות שימוש חוזר בבנאי מהבנאי. הוא שומר על השרשרת בין הבנאים כלומר הוא משמש לשרשור בנאים. בוא נראה את הדוגמה המופיעה למטה המציגה את השימוש בפועל במילת מפתח זו.
class Student{ int rollno; String name,course; float fee; Student(int rollno,String name,String course){ this.rollno=rollno; this.name=name; this.course=course; } Student(int rollno,String name,String course,float fee){ this(rollno,name,course);//reusing constructor this.fee=fee; } void display(){System.out.println(rollno+' '+name+' '+course+' '+fee);} } class TestThis7{ public static void main(String args[]){ Student s1=new Student(111,'ankit','java'); Student s2=new Student(112,'sumit','java',6000f); s1.display(); s2.display(); }}בדוק את זה עכשיו
תְפוּקָה:
111 ankit java 0.0 112 sumit java 6000.0
כלל: הקריאה ל-()זה חייבת להיות ההצהרה הראשונה בקונסטרוקטור.
class Student{ int rollno; String name,course; float fee; Student(int rollno,String name,String course){ this.rollno=rollno; this.name=name; this.course=course; } Student(int rollno,String name,String course,float fee){ this.fee=fee; this(rollno,name,course);//C.T.Error } void display(){System.out.println(rollno+' '+name+' '+course+' '+fee);} } class TestThis8{ public static void main(String args[]){ Student s1=new Student(111,'ankit','java'); Student s2=new Student(112,'sumit','java',6000f); s1.display(); s2.display(); }}בדוק את זה עכשיו
תְפוּקָה:
Compile Time Error: Call to this must be first statement in constructor
4) זה: לעבור כטיעון בשיטה
ניתן להעביר את מילת המפתח זה גם כארגומנט בשיטה. הוא משמש בעיקר בטיפול באירועים. בואו נראה את הדוגמה:
class S2{ void m(S2 obj){ System.out.println('method is invoked'); } void p(){ m(this); } public static void main(String args[]){ S2 s1 = new S2(); s1.p(); } }בדוק את זה עכשיו
תְפוּקָה:
method is invoked
יישום של זה שניתן להעביר כטיעון:
בטיפול באירועים (או) במצב בו עלינו לספק התייחסות של מחלקה למחלקה אחרת. הוא משמש לשימוש חוזר באובייקט אחד בשיטות רבות.
5) זה: להעביר כארגומנט בקריאת הבנאי
אנחנו יכולים להעביר את מילת המפתח הזו גם בבנאי. זה שימושי אם עלינו להשתמש באובייקט אחד במספר מחלקות. בואו נראה את הדוגמה:
פקודת linux עבור zip
class B{ A4 obj; B(A4 obj){ this.obj=obj; } void display(){ System.out.println(obj.data);//using data member of A4 class } } class A4{ int data=10; A4(){ B b=new B(this); b.display(); } public static void main(String args[]){ A4 a=new A4(); } }בדוק את זה עכשיו
Output:10
6) ניתן להשתמש במילת מפתח זו כדי להחזיר מופע מחלקה נוכחי
אנו יכולים להחזיר מילת מפתח זו כהצהרה מהשיטה. במקרה כזה, סוג ההחזר של השיטה חייב להיות סוג המחלקה (לא פרימיטיבי). בואו נראה את הדוגמה:
תחביר של זה שניתן להחזיר כהצהרה
return_type method_name(){ return this; }
דוגמה למילת מפתח זו שאתה מחזיר כהצהרה מהשיטה
class A{ A getA(){ return this; } void msg(){System.out.println('Hello java');} } class Test1{ public static void main(String args[]){ new A().getA().msg(); } }בדוק את זה עכשיו
תְפוּקָה:
Hello java
מוכיח את מילת המפתח הזו
בואו נוכיח שמילת המפתח הזו מתייחסת למשתנה מופע המחלקה הנוכחי. בתוכנית זו אנו מדפיסים את משתנה ההתייחסות והפלט של שני המשתנים זהה.
class A5{ void m(){ System.out.println(this);//prints same reference ID } public static void main(String args[]){ A5 obj=new A5(); System.out.println(obj);//prints the reference ID obj.m(); } }בדוק את זה עכשיו
תְפוּקָה:
A5@22b3ea59 A5@22b3ea59