java this keyword tutorial with code examples
Този урок обяснява специална ключова дума „това“ в Java подробно с прости примери за кодове. Той обхваща как, кога и къде да използваме ключовата дума ‘this’:
В този урок въведохме една от важните концепции в Java - ключовата дума ‘this’. Ще проучим подробностите за ключовата дума ‘this’ и ще представим някои примери за нейното използване в Java.
Ключовата дума „това“ в Java е референтна променлива. Референтната променлива “this” сочи към текущия обект в програмата Java . Следователно, ако искате да получите достъп до който и да е член или функция на текущия обект, тогава можете да го направите, като използвате справка ‘this’.
Какво ще научите:
- Java „this“ Въведение
- Кога да използвам ‘това’ в Java?
- Достъп до променлива на инстанция с помощта на „това“
- ‘This’ премина като параметър на метода
- Извикайте метода на текущия клас с „това“
- Върнете се с „това“
- Използване на ‘this’ за извикване на конструктора на текущия клас
- Използването на „това“ като аргумент за конструктор
- често задавани въпроси
- Заключение
Java „this“ Въведение
Позоваването „това“ обикновено се нарича „този указател“, тъй като сочи към текущия обект. „Този указател“ е полезен, когато има някакво име за атрибутите и параметрите на класа. Когато възникне такава ситуация, „този указател“ премахва объркването, тъй като можем да получим достъп до параметрите, използвайки указателя „този“.
В този урок ще обсъдим използването на „този“ указател в различни ситуации, заедно с примери.
Кога да използвам ‘това’ в Java?
В Java терминът „това“ има следните приложения:
- Препратката „това“ се използва за достъп до променливата на инстанцията на класа.
- Можете дори да предадете ‘това’ като аргумент в извикването на метода.
- ‘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’ на метода, можете също да използвате този указател, за да извикате метод. Ако изобщо забравите да включите този указател, докато извиквате метода на текущия клас, тогава компилаторът го добавя вместо вас.
Пример за извикване на метода на класа с ‘това’ е даден по-долу.
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’.
dfs и bfs c ++
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’ като аргумент на конструктор. Това е по-полезно, когато имате няколко класа, както е показано в следващото изпълнение.
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’.
често задавани въпроси
В # 1) Каква е разликата между това и това () в Java?
Отговор: В Java това се отнася до текущия обект, докато this () се отнася до конструктора със съответстващи параметри. Ключовата дума ‘това’ работи само с обекти. Извикването „this ()“ се използва за извикване на повече от един конструктор от един и същи клас.
В # 2) Необходима ли е тази ключова дума в Java?
Отговор: Необходимо е особено когато трябва да предадете текущия обект от един метод на друг или между конструкторите или просто да използвате текущия обект за други операции.
В # 3) Каква е разликата между this () и super () в Java?
Отговор: И двете () и супер () са ключови думи в Java. Докато this () представлява конструктора на текущия обект със съвпадащи параметри, super () представлява конструктора на родителския клас.
В # 4) Можете ли да използвате и този (), и супер () в конструктор?
Отговор: Да, можете да го използвате. Конструкторът this () ще сочи към текущия конструктор, докато super () ще сочи към конструктора на родителския клас. Не забравяйте, че и това (), и супер () трябва да са първото изявление.
Заключение
Ключовата дума ‘това’ е препратка към текущия обект в програмата Java. Може да се използва, за да се избегне объркване, произтичащо от едни и същи имена за променливи на класа (променливи на екземпляра) и параметри на метода.
Можете да използвате указателя 'this' по много начини като достъп до променливи на екземпляра, предаване на аргументи на метод или конструктор, връщане на обекта и др. Показалецът 'this' е важна ключова дума в Java и е полезна функция за достъп до текущия обект и неговите членове и функции.
Надяваме се, че сте проследили използването на ключовата дума ‘this’ в Java от този урок.
Препоръчително четене
- Урок за JAVA за начинаещи: 100+ практически ръководства за Java видео
- Урок за отражение на Java с примери
- C # Урок за обработка на изключения с примери за кодове
- Урок за Python DateTime с примери
- Урок за функции / методи на C # с примери за кодове
- Java SWING Урок: Контейнер, компоненти и обработка на събития
- Урок за Java Collections Framework (JCF)
- Урок за интерфейс на Java и абстрактен клас с примери