对于下列代码: public class Test{ int x; public Test (int x){ this.x = x; } public static void main(String args[]){ Test t1, t2, t3; t1 = new Test(5); t2 = new Test(5); t3 = t2; int n = 5; } } 下列哪些表达式返回值为true?() A. t1 == t2; B. t2 == t3; C. n == t1; D. t1.equals(n)
时间: 2023-12-03 18:03:50 浏览: 145
在这段代码中,t1和t2是两个不同的对象,它们的成员变量x的值相同,t3是指向t2对象的引用。n是一个int类型的变量,所以选项C和D都是不正确的。因此,只有选项A和B需要考虑。
A. t1 == t2;:这个表达式比较的是t1和t2两个对象的引用是否相等,即它们是否是同一个对象。由于t1和t2是两个不同的对象,因此它们的引用不相等,所以这个表达式的返回值为false。
B. t2 == t3;:这个表达式比较的是t2和t3两个对象的引用是否相等。由于t3是指向t2对象的引用,所以它们的引用相等,即它们指向同一个对象,因此这个表达式的返回值为true。
因此,正确的选项是B。
相关问题
以下代码运行结果为: 7 19 12 请补充以下源代码: public class Test { int x, y; Test(int x, int y) { this.x = x; this.y = y; } public class Test { public static void main(String[] args) { Test pt1, pt2; pt1 = new Test(1.___, 7); pt2 = new Test(5, 2.____); System.out.print(pt1.x + pt2.x); System.out.print(pt1.y + pt2.y); System.out.print(pt1.3.____ + pt2.4.____); System.out.print(pt1.5.____ + pt2.6.____); } }
以下是补充后的源代码:
```
public class Test {
int x, y;
Test(int x, int y) {
this.x = x;
this.y = y;
}
public static void main(String[] args) {
Test pt1, pt2;
pt1 = new Test(1, 7);
pt2 = new Test(5, 2);
System.out.print(pt1.x + pt2.x);
System.out.print(pt1.y + pt2.y);
System.out.print(pt1.x * pt2.y + pt2.x * pt1.y);
System.out.print(pt1.y * pt2.x - pt2.y * pt1.x);
}
}
```
其中,第一个空格填写数字1,第二个空格填写数字2,第三个空格填写"x * y",第四个空格填写"y * x"。
解释一下代码public class Test7 { int x, y; Test7(int x, int y) { this.x = x; this.y = y; } public static void main(String[] args) { Test7 pt1, pt2; pt1 = new Test7(3, 3); pt2 = new Test7(4, 4); System.out.print( pt1.x + pt2.x); } }
这是一个Java程序,它定义了一个名为Test7的类。该类具有两个整型成员变量x和y,还有一个构造函数Test7(int x, int y),用于初始化x和y的值。在main方法中,创建了两个Test7对象pt1和pt2,并将它们的x和y分别初始化为(3,3)和(4,4)。最后,通过System.out.print打印出了pt1.x和pt2.x的和,即7。
阅读全文