java this keyword tutorial with code examples
Цей підручник детально пояснює спеціальне ключове слово „це” на Java із простими прикладами коду. Це охоплює те, як, коли і де використовувати ключове слово „це”:
У цьому підручнику ми представили одне з важливих понять Java - ключове слово „this”. Ми вивчимо подробиці ключового слова „this”, а також подамо кілька прикладів його використання в Java.
Ключове слово 'це' в Java є посилальною змінною. Посилальна змінна 'this' вказує на поточний об'єкт у програмі Java . Отже, якщо ви хочете отримати доступ до будь-якого члена або функції поточного об’єкта, тоді ви можете зробити це, використовуючи посилання ‘this’.
Що ви дізнаєтесь:
- Вступ до Java
- Коли використовувати 'це' в Java?
- Змінна екземпляра доступу за допомогою цього
- ‘This’ передано як параметр методу
- Покличте поточний метод класу за допомогою цього
- Поверніться із 'цим'
- Використовуючи ‘this’, щоб викликати конструктор поточного класу
- Використовуючи ‘this’ як аргумент конструктора
- Часті запитання
- Висновок
Вступ до Java
Посилання „це” зазвичай називають „цим покажчиком”, оскільки воно вказує на поточний об’єкт. „Цей вказівник” корисний, коли існує якесь ім’я для атрибутів та параметрів класу. Коли виникає така ситуація, 'цей покажчик' усуває плутанину, оскільки ми можемо отримати доступ до параметрів за допомогою 'цього' покажчика.
У цьому підручнику ми обговоримо використання вказівника ‘this’ у різних ситуаціях разом із прикладами.
Коли використовувати 'це' в Java?
На Java термін 'це' має наступне використання:
- Посилання ‘this’ використовується для доступу до змінної екземпляра класу.
- Ви навіть можете передати 'це' як аргумент у виклику методу.
- ‘This’ також можна використовувати для неявного виклику поточного методу класу.
- Якщо ви хочете повернути поточний об'єкт із методу, використовуйте 'this'.
- Якщо ви хочете викликати конструктор поточного класу, можна використати ‘this’.
- Конструктор також може мати аргумент 'це'.
Давайте тепер розглянемо кожне з цих застосувань окремо.
Змінна екземпляра доступу за допомогою цього
Змінні екземпляра параметрів класу та методу можуть мати однакові назви. Покажчик ‘this’ може бути використаний для усунення неоднозначності, що виникає з цього.
Наведена нижче програма Java демонструє, як 'це' можна використовувати для доступу до змінних екземпляра.
class this_Test { int val1; int val2; // Parameterized constructor this_Test(int val1, int val2) { this.val1 = val1 + val1; this.val2 = val2 + val2; } void display() { System.out.println('Value val1 = ' + val1 + ' Value val2 = ' + val2); } } class Main{ public static void main(String() args) { this_Test object = new this_Test(5,10); object.display(); } }
Вихід:
У наведеній вище програмі ви можете бачити, що змінні екземпляра та параметри методу мають однакові імена. Ми використовуємо вказівник ‘this’ зі змінними екземпляра для розмежування змінних екземпляра та параметрів методу.
‘This’ передано як параметр методу
Ви також можете передати цей покажчик як параметр методу. Передача цього покажчика як параметра методу зазвичай потрібна, коли ви маєте справу з подіями. Наприклад, припустимо, ви хочете викликати якусь подію на поточному об’єкті / дескрипторі, тоді вам потрібно її активувати за допомогою цього покажчика.
Нижче наведено демонстрацію програмування, в якій ми передали цей вказівник на метод.
class Test_method { int val1; int val2; Test_method() { val1 = 10; val2 = 20; } void printVal(Test_method obj) { System.out.println('val1 = ' + obj.val1 + ' val2 = ' + obj.val2); } void get() { printVal(this); } } class Main{ public static void main(String() args) { Test_method object = new Test_method(); object.get(); } }
Вихід:
У цій програмі ми створюємо об’єкт класу Test_method у головній функції, а потім викликаємо метод get () з цим об’єктом. Усередині методу get () вказівник ‘this’ передається методу printVal (), який відображає поточні змінні екземпляра.
Покличте поточний метод класу за допомогою цього
Подібно до того, як ви можете передати вказівник ‘this’ методу, ви також можете використовувати цей вказівник для виклику методу. Якщо ви взагалі забули включити цей покажчик під час виклику методу поточного класу, тоді компілятор додає його для вас.
Приклад виклику методу класу за допомогою 'this' наведено нижче.
class Test_this { void print() { // calling fuctionshow() this.show(); System.out.println('Test_this:: print'); } void show() { System.out.println('Test_this::show'); } } class Main{ public static void main(String args()) { Test_this t1 = new Test_this(); t1.print(); } }
Вихід:
У цій програмі метод класу print () викликає метод show () за допомогою цього вказівника, коли його викликає об'єкт класу в головній функції.
Поверніться із 'цим'
Якщо тип повернення методу є об’єктом поточного класу, тоді ви можете зручно повернути вказівник ‘this’. Іншими словами, ви можете повернути поточний об’єкт із методу за допомогою вказівника ‘this’.
Нижче наведено реалізацію повернення об’єкта за допомогою вказівника ‘this’.
наскрізне тестування проти регресійного тестування
class Test_this { int val_a; int val_b; //Default constructor Test_this() { val_a = 10; val_b = 20; } Test_this get() { return this; } void display() { System.out.println('val_a = ' + val_a + ' val_b = ' + val_b); } } class Main{ public static void main(String() args) { Test_this object = new Test_this(); object.get().display(); } }
Вихід:
Наведена вище програма показує метод get (), який повертає цей об'єкт класу Test_this. Використовуючи поточний об'єкт, повернутий методом get (), відображається метод відображення методу.
Використовуючи ‘this’, щоб викликати конструктор поточного класу
Ви також можете використовувати вказівник ‘this’, щоб викликати конструктор поточного cla.ss. Основна ідея - повторне використання конструктора. Знову ж таки, якщо у вас є більше одного конструктора у вашому класі, тоді ви можете викликати ці конструктори один від одного, що призведе до ланцюжка конструкторів.
Розглянемо наступну програму Java.
class This_construct { int val1; int val2; //Default constructor This_construct() { this(10, 20); System.out.println('Default constructor
'); } //Parameterized constructor This_construct(int val1, int val2) { this.val1 = val1; this.val2 = val2; System.out.println('Parameterized constructor'); } } class Main{ public static void main(String() args) { This_construct object = new This_construct(); } }
Вихід:
У наведеній вище програмі у нас є два конструктори в класі. Інший конструктор ми викликаємо за допомогою вказівника ‘this’ із конструктора за замовчуванням класу.
Використовуючи ‘this’ як аргумент конструктора
Ви також можете передати вказівник ‘this’ як аргумент конструктору. Це більш корисно, коли у вас є кілька класів, як показано в наступному впровадженні.
class Static_A { Static_B obj; Static_A(Static_B obj) { this.obj = obj; obj.display(); } } class Static_B { int x = 10; Static_B() { Static_A obj = new Static_A(this); } void display() { System.out.println('B::x = ' + x); } } class Main{ public static void main(String() args) { Static_B obj = new Static_B(); } }
Вихід:
Як показано у наведеній вище реалізації, у нас є два класи, і кожен конструктор класів викликає конструктор іншого класу. Для цього використовується вказівник ‘this’.
Часті запитання
Q # 1) Яка різниця між цим і цим () в Java?
Відповідь: У Java це стосується поточного об'єкта, тоді як this () - конструктора з відповідними параметрами. Ключове слово „це” працює лише з об’єктами. Виклик “this ()” використовується для виклику більше одного конструктора з одного класу.
Q # 2) Чи потрібно це ключове слово в Java?
Відповідь: Це необхідно, особливо коли вам потрібно передати поточний об'єкт з одного методу в інший, або між конструкторами, або просто використовувати поточний об'єкт для інших операцій.
Q # 3) Яка різниця між цим () та super () у Java?
Відповідь: І це (), і супер () - це ключові слова в Java. Хоча this () представляє конструктор поточного об'єкта з відповідними параметрами, super () представляє конструктор батьківського класу.
Q # 4) Чи можете ви використовувати і this (), і super () у конструкторі?
Відповідь: Так, ви можете ним скористатися. Конструктор this () вказуватиме на поточний конструктор, а super () - на конструктор батьківського класу. Пам'ятайте, що і це (), і супер () повинні бути першим твердженням.
Висновок
Ключове слово „this” - це посилання на поточний об’єкт у програмі Java. Його можна використовувати, щоб уникнути плутанини, що виникає внаслідок однакових назв змінних класу (змінних екземпляра) та параметрів методу.
Ви можете використовувати вказівник 'this' різними способами, як доступ до змінних екземпляра, передача аргументів методу чи конструктору, повернення об'єкта тощо. Вказівник 'this' є важливим ключовим словом у Java і є корисною функцією для доступу до поточного об'єкта та його члени та функції.
Ми сподіваємось, що ви дотримувались використання цього слова в Java у цьому посібнику.
Рекомендована література
- Підручник JAVA для початківців: 100+ практичних навчальних посібників Java
- Підручник з роздумів про Java з прикладами
- Підручник з обробки винятків C # із прикладами коду
- Підручник з Python DateTime із прикладами
- Підручник з функцій / методів C # із прикладами коду
- Підручник з Java SWING: Контейнер, компоненти та обробка подій
- Підручник з Java Collections Framework (JCF)
- Інтерфейс Java та підручник з абстрактних класів із прикладами