更新时间:2022-04-19 09:10:27 来源:极悦 浏览1223次
极悦小编来给大家介绍一下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
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习