通过两个类StaticDemo、Main 说明静态变量/方法与实例变量/方法的区别。 以下程序编译的时候会报错,请修改程序,使得程序能够正确运行并输出和样例一样的结果。 注意不要改变那几行println的顺序。 class StaticDemo { static int x;// 1) int y; public static int getX() {// 2} return x; } public static void setX(int newX) { x = newX; } public int getY() { return y; } public void setY(int newY) { y = newY; } } public class Main { public static void main(String[] args) { System.out.println("静态变量x=" + StaticDemo.getX()); System.out.println("实例变量y=" + StaticDemo.getY()); StaticDemo a = new StaticDemo(); StaticDemo b = new StaticDemo(); a.setX(1); a.setY(2); b.setX(3); b.setY(4); System.out.println("静态变量a.x=" + a.getX()); System.out.println("实例变量a.y=" + a.getY()); System.out.println("静态变量b.x=" + b.getX()); System.out.println("实例变量b.y=" + b.getY()); } }
时间: 2024-03-17 10:40:19 浏览: 189
静态变量/方法属于类,不依赖于类的实例化对象,可以通过类名直接访问;实例变量/方法属于对象,需要实例化对象后才能访问。以下是示例代码:
```java
class StaticDemo {
static int x; // 静态变量
int y; // 实例变量
public static int getX() {
return x;
}
public static void setX(int newX) {
x = newX;
}
public int getY() {
return y;
}
public void setY(int newY) {
y = newY;
}
}
public class Main {
public static void main(String[] args) {
System.out.println("静态变量x=" + StaticDemo.getX());
StaticDemo.setX(1); // 直接通过类名访问和修改静态变量x
System.out.println("实例变量y=" + new StaticDemo().getY()); // 必须通过实例化对象才能访问实例变量y
StaticDemo a = new StaticDemo();
StaticDemo b = new StaticDemo();
a.setX(1);
a.setY(2);
b.setX(3);
b.setY(4);
System.out.println("静态变量a.x=" + a.getX());
System.out.println("实例变量a.y=" + a.getY());
System.out.println("静态变量b.x=" + b.getX());
System.out.println("实例变量b.y=" + b.getY());
}
}
```
修改后的程序如下:
```java
class StaticDemo {
static int x; // 静态变量
int y; // 实例变量
public static int getX() {
return x;
}
public static void setX(int newX) {
x = newX;
}
public int getY() {
return y;
}
public void setY(int newY) {
y = newY;
}
}
public class Main {
public static void main(String[] args) {
StaticDemo.setX(1); // 直接通过类名访问和修改静态变量x
System.out.println("静态变量x=" + StaticDemo.getX());
System.out.println("实例变量y=" + new StaticDemo().getY()); // 必须通过实例化对象才能访问实例变量y
StaticDemo a = new StaticDemo();
StaticDemo b = new StaticDemo();
a.setX(1);
a.setY(2);
b.setX(3);
b.setY(4);
System.out.println("静态变量a.x=" + a.getX());
System.out.println("实例变量a.y=" + a.getY());
System.out.println("静态变量b.x=" + b.getX());
System.out.println("实例变量b.y=" + b.getY());
}
}
```
运行结果:
```
静态变量x=1
实例变量y=0
静态变量a.x=1
实例变量a.y=2
静态变量b.x=3
实例变量b.y=4
```
阅读全文