实验一:编写类文件Test1.java,程序源代码如下,请对其编译,并排错运行。

实验一:编写类文件Test1.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 y) { y = y; }
}
public class Test1 {
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());
理想输出结果:
静态变量x=0
实例变量y=0
静态变量a.x=3
实例变量a.y=2
静态变量b.x=3
实例变量b.y=4

public class test1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
StaticDemo st=new StaticDemo();
System.out.println("静态变量x="+st.getX());
System.out.println("实例变量y="+st.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());
}

}
class StaticDemo {
static int x;
int y;
public static int getX() { return x; }
public static void setX(int x) { StaticDemo.x = x; }
public int getY() { return y; }
public void setY(int y) { this.y = y; }
}

这才是正确的,需要注意的是:静态变量可以用类名.方法名 而实例变量时通过对象.方法名
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜