专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java里this的用法介绍

Java里this的用法介绍

更新时间:2022-04-19 09:10:27 来源:赢咖4 浏览1110次

赢咖4小编来给大家介绍一下Java里this的用法有哪些。

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

 

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>