以下Java代码运行结果class HasStatic { static int x=10; int y=10; } public class TestStatic { public static void main (String args []) { HasStatic h1 = new HasStatic (); HasStatic h2 = new HasStatic (); h1.x++; h1.y++; h2.x++; h2.y++; System. out.println (h1.x+", "thl.y); System.out.printIn (h2.x+", "+h2.y); } }
时间: 2024-01-15 13:03:33 浏览: 106
运行结果为:
```
11, 11
11, 10
```
解析:
- `HasStatic` 类中有一个静态变量 `x` 和一个实例变量 `y`。
- 在 `TestStatic` 类中创建了两个 `HasStatic` 对象 `h1` 和 `h2`。
- `h1.x++` 和 `h2.x++` 分别将 `HasStatic` 类的静态变量 `x` 加 1,因此 `x` 的值变为 11。
- `h1.y++` 将 `h1` 对象的实例变量 `y` 加 1,因此 `h1.y` 的值变为 11。
- `h2.y++` 将 `h2` 对象的实例变量 `y` 加 1,因此 `h2.y` 的值变为 11。
- `System.out.println(h1.x + ", " + h1.y)` 输出 `11, 11`。
- `System.out.println(h2.x + ", " + h2.y)` 输出 `11, 10`,因为 `h2.y` 是 `HasStatic` 类的实例变量,它的值只与 `h2` 对象有关,而与 `h1` 对象无关。
相关问题
JavaopDemo.java文件中代码如下,试找出代码中的语法错误,说明原因并改正 public class Demo { public static void main(String args[]) { Base b = new Base(); b.Base(100, 200); System.out.println(b.Base()); } } default class Base { private int x = 10; private int y = 20; Base (int x, int y) { this.x = x; this.y = y; } int Base() { return x + y; } }
在代码中,语法错误在于使用了 default 关键字来修饰 Base 类,但是 default 关键字只能用于接口中的方法和变量,不能用于类的修饰。因此,需要将 default 关键字删除,改为 public 或者不加修饰符。同时,需要将 Base 方法的返回值改为 x + y,而不是 x y。修改后的代码如下:
public class Demo {
public static void main(String args[]) {
Base b = new Base();
b.Base(100, 200);
System.out.println(b.Base());
}
}
class Base {
private int x = 10;
private int y = 20;
Base (int x, int y) {
this.x = x;
this.y = y;
}
int Base() {
return x + y;
}
}
下列ABCD注释标注的哪行代码有错误? class Tom { private int x = 120; protected int y = 20; int z = 11; private void f() { x = 200; System. out. printIn (x); } void g() { x= 200; System. out. print]n (x); public class E { public static void main (String argsl Tom tom = new Tom); tom. x = 22; /A tom. y = 33; //B tom. z = 55; TIC tom. g () ; //D
代码中有两处错误,第三行应该是 public class Tom 而不是 class Tom,第九行应该是 new Tom() 而不是 Tom)。正确代码应该是:
```java
public class Tom {
private int x = 120;
protected int y = 20;
int z = 11;
private void f() {
x = 200;
System.out.println(x);
}
void g() {
x = 200;
System.out.println(x);
}
}
public class E {
public static void main(String[] args) {
Tom tom = new Tom();
tom.x = 22; //A
tom.y = 33; //B
tom.z = 55; //C
tom.g(); //D
}
}
```
阅读全文