Tôi muốn chia sẻ những gì tôi hiểu từ từ khóa này. Từ khóa này có 6 cách sử dụng trong java như sau: -
1. Nó có thể được sử dụng để chỉ biến lớp hiện tại.
Hãy để chúng tôi hiểu với một mã. *
Hãy hiểu vấn đề nếu chúng ta không sử dụng từ khóa này bằng ví dụ dưới đây:
class Employee{
int id_no;
String name;
float salary;
Student(int id_no,String name,float salary){
id_no = id_no;
name=name;
salary = salary;
}
void display(){System.out.println(id_no +" "+name+" "+ salary);}
}
class TestThis1{
public static void main(String args[]){
Employee s1=new Employee(111,"ankit",5000f);
Employee s2=new Employee(112,"sumit",6000f);
s1.display();
s2.display();
}}
Đầu ra: -
0 null 0.0
0 null 0.0
Trong ví dụ trên, các tham số (đối số chính thức) và các biến thể hiện là như nhau. Vì vậy, chúng tôi đang sử dụng từ khóa này để phân biệt biến cục bộ và biến thể hiện.
class Employee{
int id_no;
String name;
float salary;
Student(int id_no,String name,float salary){
this.id_no = id_no;
this.name=name;
this.salary = salary;
}
void display(){System.out.println(id_no +" "+name+" "+ salary);}
}
class TestThis1{
public static void main(String args[]){
Employee s1=new Employee(111,"ankit",5000f);
Employee s2=new Employee(112,"sumit",6000f);
s1.display();
s2.display();
}}
đầu ra:
111 ankit 5000
112 sumit 6000
2. Để gọi phương thức lớp hiện tại.
class A{
void m(){System.out.println("hello Mandy");}
void n(){
System.out.println("hello Natasha");
//m();//same as this.m()
this.m();
}
}
class TestThis4{
public static void main(String args[]){
A a=new A();
a.n();
}}
Đầu ra:
hello Natasha
hello Mandy
3. để gọi hàm tạo của lớp hiện tại. Nó được sử dụng để xây dựng chuỗi.
class A{
A(){System.out.println("hello ABCD");}
A(int x){
this();
System.out.println(x);
}
}
class TestThis5{
public static void main(String args[]){
A a=new A(10);
}}
Đầu ra:
hello ABCD
10
4. để vượt qua như là một đối số trong phương thức.
class S2{
void m(S2 obj){
System.out.println("The method is invoked");
}
void p(){
m(this);
}
public static void main(String args[]){
S2 s1 = new S2();
s1.p();
}
}
Đầu ra:
The method is invoked
5. để vượt qua như một đối số trong lệnh gọi hàm tạo
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();
}
}
Đầu ra: -
10
6. để trả về thể hiện của lớp hiện tại
class A{
A getA(){
return this;
}
void msg(){System.out.println("Hello");}
}
class Test1{
public static void main(String args[]){
new A().getA().msg();
}
}
Đầu ra: -
Hello
Ngoài ra, từ khóa này không thể được sử dụng mà không có. (Dấu chấm) vì cú pháp của nó không hợp lệ.