解释一下代码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); } }
时间: 2024-02-14 15:36:00 浏览: 67
这是一个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。
相关问题
以下代码运行结果为: 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"。
解释下面这段代码class FatherA{ int x,y; FatherA(int x,int y){this.x=x;this.y=y;} static void show(){ System.out.println("FatherA静态方法"); } void compare(){ System.out.println(x+y); } } class SonB extends FatherA{ int x,y; SonB(int x,int y) { super(x,y);//代码1 this.x=x; this.y=y; } void compare(){ System.out.println(x+y); } static void show(){ System.out.println("SonB类的静态方法"); } } public class Test { public static void main(String[] args) { FatherA a; SonB b=new SonB(10,20); a=b; b.compare();//代码2 a.compare();//代码3 b.show();//代码4 a.show();//代码5 } }
这段代码定义了一个父类 FatherA 和一个子类 SonB,其中 SonB 继承自 FatherA。在 main 方法中,创建了一个 SonB 对象 b,并将其赋值给 FatherA 类型的变量 a。
代码1中使用 super 调用了父类的构造方法,初始化了父类的 x 和 y 字段。同时,子类也有自己的 x 和 y 字段。
代码2和代码3分别调用了子类和父类的 compare 方法。由于子类重写了父类的 compare 方法,因此代码2输出的是子类的 x+y 的结果,而代码3输出的是父类的 x+y 的结果。
代码4和代码5分别调用了子类和父类的静态方法 show。静态方法是不受对象影响的,因此无论是调用子类的静态方法还是父类的静态方法,输出的都是对应类中定义的静态方法的内容。因此,代码4输出的是 SonB 类的静态方法的内容,而代码5输出的是 FatherA 类的静态方法的内容。注意,子类的静态方法不能重写父类的静态方法,因此代码4中的 SonB 类的静态方法并没有覆盖 FatherA 类的静态方法。
阅读全文