更新时间:2022-04-19 09:10:27 来源:动力节点 浏览1763次
动力节点小编来给大家介绍一下Java里this的用法有哪些。
这里给出java this关键字的6种用法。
this 可用于引用当前类实例变量。
this 可用于调用当前类方法(隐式)
this() 可用于调用当前类的构造函数。
这可以作为方法调用中的参数传递。
this 可以在构造函数调用中作为参数传递。
this 可用于从方法返回当前类实例。
建议:如果你是java初学者,只查一下这个关键字的三种用法。
(1)this:引用当前类实例变量
this 关键字可用于引用当前类实例变量。如果实例变量和参数之间有歧义,这个关键字解决了歧义的问题。
理解没有这个关键字的问题
如果我们不使用这个关键字,让我们通过下面给出的示例来理解问题:
班级 学生{  
诠释 rollno;  
字符串名称;  
浮动 费用;  
学生(int  rollno,字符串名称,浮动 费用){  
卷号=卷号;  
名称=名称;  
费用=费用;  
}  
void  display(){System.out.println(rollno+ " " +name+ " " +fee);}  
}  
类 TestThis1{  
公共静态无效 主要(字符串参数[]){    
学生 s1=新 学生(111 ,“ankit” ,5000f);  
学生 s2=新 学生(112 ,“summit” ,6000f);  
s1.display();  
s2.display();  
}}  
输出:
0 null 0.0
0 null 0.0
(2)this:调用当前类方法
您可以使用 this 关键字调用当前类的方法。如果不使用 this 关键字,编译器会在调用方法时自动添加 this 关键字。让我们看看这个例子

A类 {  
void  m(){System.out.println( "你好 m" );}  
无效 n(){  
System.out.println( "你好 n" );  
//m();//和this.m()一样  
这个.m();  
}  
}  
类 TestThis4{  
公共静态无效 主要(字符串参数[]){    
A a=新 A();  
一个();  
}}  
输出:
你好
你好,我
(3)this() : 调用当前类的构造函数
this() 构造函数调用可用于调用当前类构造函数。它用于重用构造函数。换句话说,它用于构造函数链接。
从参数化构造函数调用默认构造函数:
A类 {  
A(){System.out.println( "你好" );}  
A( int  x){  
这个();  
System.out.println(x);  
}  
}  
类 TestThis5{  
公共静态无效 主要(字符串参数[]){    
A a=新 A( 10 );  
}}  
输出:
你好一个
10
从默认构造函数调用参数化构造函数:
A类 {  
一种(){  
这( 5 );  
System.out.println( "你好" );  
}  
A( int  x){  
System.out.println(x);  
}  
}  
类 TestThis6{  
公共静态无效 主要(字符串参数[]){    
A a=新 A();  
}}  
输出:
5
你好一个
this() 构造函数调用的真实用法
应该使用 this() 构造函数调用来重用构造函数中的构造函数。它维护构造函数之间的链,即它用于构造函数链。让我们看看下面给出的示例,该示例显示了 this 关键字的实际用法。
班级 学生{  
诠释 rollno;  
字符串名称,课程;  
浮动 费用;  
学生(int  rollno,字符串名称,字符串课程){  
这个.rollno=rollno;  
这个.name=name;  
这.course=课程;  
}  
Student( int  rollno,String name,String course, float  fee){  
这(卷号,名称,课程);//重用构造函数  
这个.fee=fee;  
}  
void  display(){System.out.println(rollno+ " " +name+ " " +course+ " " +fee);}  
}  
类 TestThis7{  
公共静态无效 主要(字符串参数[]){    
学生 s1=新 学生(111 ,“ankit” ,“java” );  
学生 s2=新 学生(112 ,“sumit” ,“java” ,6000f);  
s1.display();  
s2.display();  
}}  
输出:
111 ankit java 0.0
112 sumit java 6000.0
规则:调用 this() 必须是构造函数中的第一条语句。
班级 学生{  
诠释 rollno;  
字符串名称,课程;  
浮动 费用;  
学生(int  rollno,字符串名称,字符串课程){  
这个.rollno=rollno;  
这个.name=name;  
这.course=课程;  
}  
Student( int  rollno,String name,String course, float  fee){  
这个.fee=fee;  
这(卷号,名称,课程);//CT错误  
}  
void  display(){System.out.println(rollno+ " " +name+ " " +course+ " " +fee);}  
}  
类 TestThis8{  
公共静态无效 主要(字符串参数[]){    
学生 s1=新 学生(111 ,“ankit” ,“java” );  
学生 s2=新 学生(112 ,“sumit” ,“java” ,6000f);  
s1.display();  
s2.display();  
}}  
输出:
编译时错误:调用 this 必须是构造函数中的第一条语句
(4)this: 在方法中作为参数传递
this 关键字也可以作为方法中的参数传递。它主要用于事件处理。让我们看看这个例子:
 S2  类{
  无效 米(S2 对象){  
  System.out.println( "方法被调用" );  
  }  
  无效 p(){  
  米(这个);  
  }  
  公共静态无效 主要(字符串参数[]){    
  S2 s1 = 新 S2();  
  s1.p();  
  }  
}  
输出:
方法被调用
可以作为参数传递的 this 的应用:
在事件处理中(或)在我们必须提供一个类对另一个类的引用的情况下。它用于在许多方法中重用一个对象。
(5)this:在构造函数调用中作为参数传递
我们也可以在构造函数中传递 this 关键字。如果我们必须在多个类中使用一个对象,这很有用。让我们看看这个例子:
B类 {  
  A4 对象;  
  B(A4 对象){  
    这个.obj=obj;  
  }  
  无效 显示(){  
    System.out.println(obj.data); //使用A4类的数据成员  
  }  
}    
 A4  类{
  整数 数据= 10 ;  
  A4(){  
   B b=新 B(这个);  
   b.显示();  
  }  
  公共静态无效 主要(字符串参数[]){    
   A4 a=新 A4();  
  }  
}  
输出:
10
(6)这个关键字可以用来返回当前的类实例
我们可以将此关键字作为方法中的语句返回。在这种情况下,方法的返回类型必须是类类型(非原始)。让我们看看这个例子:
可以作为语句返回的 this 的语法
返回类型方法名称(){  
返回这个;   
}  
A类 {  
一个 getA(){  
返回这个;   
}  
void  msg(){System.out.println( "Hello java" );}  
}  
类 测试1{  
公共静态无效 主要(字符串参数[]){    
新 的 A().getA().msg();  
}  
}  
输出:
你好java
让我们证明这个Java关键字是指当前类的实例变量。在这个程序中,我们正在打印参考变量,这两个变量的输出是相同的。
 A5  级{
无效 米(){  
System.out.println(这个); //打印相同的参考ID  
}  
公共静态无效 主要(字符串参数[]){    
A5 obj=新 A5();  
System.out.println(obj); //打印参考ID  
obj.m();  
}  
}  
输出:
A5@22b3ea59 
A5@22b3ea59
						Java实验班
						0基础 0学费 15天面授
						Java就业班
						有基础 直达就业
						Java夜校直播班
						业余时间 高薪转行
						Java在职加薪班
						工作1~3年,加薪神器
						Java架构师班
						工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习