class t{ int m; public t(int m){this.m = m;} public t change(t t1){ t1 = this;public class ss { public static void main(String[] args) { t t1 = new t(10); t t2 = new t(20); t t3 = t1.change(t2); t3.m = 80; System.out.println(t1.m); System.out.println(t2.m); System.out.println(t3.m); } } t1.m = 14; return t1; } }运行代码
时间: 2023-06-20 10:06:35 浏览: 77
这段代码会输出以下内容:
```
10
20
80
```
在 `main` 方法中,首先创建了三个 `t` 类型的对象 `t1`、`t2` 和 `t3`,分别初始化为 `new t(10)`、`new t(20)` 和 `t1.change(t2)`。然后对 `t3` 的成员变量 `m` 进行了修改,将其赋值为 `80`。
在 `change` 方法中,传入的参数为 `t1` 和 `t2`,但是在方法中并没有使用 `t2`,而是将 `t1` 的引用指向了 `this`,即当前对象。在方法返回时,返回的是 `t1` 的引用,因此 `t3` 实际上指向的是 `t1`,而不是 `t2`。
因此,对 `t3` 的修改实际上是对 `t1` 的修改,因此输出结果为 `10 20 80`。
相关问题
class t{ int m; public t(int m){this.m=m;} public t change(t t1){ t1=this; t1.m=14; return t1; } } 执行如下代码,输入结果? t t1=new t(10); t t2=new t(20); t t3=t1.change(t2); t3.m=80; System.out.println(t1.m); System.out.println(t2.m); System.out.println(t3.m);
输出结果为:14 20 80。
在代码中,首先创建了两个 t 类型的对象 t1 和 t2,它们的 m 值分别为 10 和 20。接着执行 t1.change(t2) 方法,将 t2 对象传递给 change 方法,在 change 方法中,t1 和 t1 两个对象都指向了 t1 对象。因此,当执行 t1.m=14 时,t1 对象的 m 值被改为了 14,而 t2 对象的 m 值仍然是 20。
最后,将 t1.change(t2) 的返回值赋值给 t3,即 t3 也指向了 t1 对象。因此,当执行 t3.m=80 时,t1 和 t3 对象的 m 值都被改为了 80,而 t2 对象的 m 值仍然是 20。
class t{ int m; public t(int m){this.m = m;} public t change(t t1){ t1 = this; t1.m = 14; return t1; } }
这是一个简单的Java类,包含一个int类型的成员变量m和一个构造函数,构造函数传入一个int类型参数并将其赋值给m。还包含一个名为change的方法,该方法接受一个t类型的参数t1,将其赋值为当前对象(this),然后将t1的m成员变量设置为14,并返回t1。这个方法的意义不太清楚,可能是为了演示Java中对象的引用传递和值传递的区别。
阅读全文