JAVA方法中的“return this”是什么含义?
发布网友
发布时间:2022-04-23 15:07
我来回答
共9个回答
懂视网
时间:2022-04-23 19:29
本文通过实例代码给大家介绍了JS构造函数中this和return,需要的朋友参考下吧
先看一段代码,
使用构造函数实例化发生的流程:
1.建立一个foo的空对象。
2.将构造函数中的Foo的this指向对象foo。
3.foo的_proto_属性指向Foo函数的prototype原型。
4.执行构造函数中的代码。
相对于普通函数,构造函数中的this是指向实例的,而普通函数调用中的this是指向windows的。
构造函数中如果加入了return的话,分两种情况
1.return的是五种简单数据类型:String,Number,Boolean,Null,Undefined。
这种情况下,忽视return值,依然返回this对象。
2.return的是Object。
这种情况下,不再返回this对象,而是返回return语句的返回值。
热心网友
时间:2022-04-23 16:37
return this 简单的说 就是返回当前这个类的 当前的对象。。。仔细品味我说的话 。。。 有的时候 是return this.xxx 这个xxx有可能是属性或者方法
表示 返回当前这个类的 当前的对象的某个属性或者方法
热心网友
时间:2022-04-23 17:55
return this就是返回指向当前对象的引用..
public class ReturnThis {
int num;
// 构造函数
public ReturnThis(int num) {
this.num = num;// 为num赋值
}
// 测试函数
public ReturnThis returnThis() {//
return this;// 返回指向当前对象的引用
}
// 重写toString方法
@Override
public String toString() {
return "num=" + num;
}
public static void main(String[] args) {
System.err.println(new ReturnThis(50).returnThis());// 测试
}
}
运行结果为:
num=50
热心网友
时间:2022-04-23 19:29
就是返回当前对象。
this就代表当前对象.
比如一个厕所,A先上,这时我返回的当前对象就是A.B再上,我再返回当前对象就变成了B.
热心网友
时间:2022-04-23 21:21
连续操作类里方法,每次返回类实例,用return this;
class Test2 {
String s="";
public static void main(String[] args) {
Test2 t = new Test2();
t.method("111");
t.method("222");
t.method("333");
t.method2();
}
public Test2 method(String sb) {
s+=sb;
return this;
}
public void method2() {
System.out.println(s);
}
} 结果: 111222333
热心网友
时间:2022-04-23 23:29
返回当前对象的引用啊
热心网友
时间:2022-04-24 01:53
返回正在调用此方法的对象
热心网友
时间:2022-04-24 04:35
就是返回自己的意思
比如说
class A {
public A getMe() {
return this;
}
}
热心网友
时间:2022-04-24 07:33
public class ReturnTest {
String str="";//成员变量(优先执行)
//this只可以获取当前类的属性和方法(this指的是ReturnTest这个类)
//如果要返回这个类必须指定返回类型为这个类
// (换句话说返回this,类型必须是ReturnTest,this代表这个类)
public ReturnTest getStr(String str) {
this.str+=str;
return this;
//返回this是当前类实例化的地址
//如果要进行输出这个类,类是引用类型绝对是一个地址(ReturnTest@4554617c)
//回回到main方法实例化的对象的地址returnTest
}
//效果和下面这个方法没区别
public String strings(String str) {
this.str+=str;
return this.str;
}
public static void main(String[] args) {
ReturnTest returnTest=new ReturnTest();
//1.
returnTest.getStr("火影忍者");
returnTest.getStr("漩涡鸣人");
System.out.println(returnTest.str);
//2.
returnTest.strings("七龙珠");
returnTest.strings("孙悟空");
System.out.println(returnTest);
//1. 2.无区别一样
}
}