一个有趣的问题

//静态变量

//静态变量与实例变量的区别

 

 

class StaticDemo {

static int x;//静态变量x

int y;//实例变量y

static public int getX(){

return x;

}

 

static public void setX(int newX){

x=newX;

}

public int getY(){

return y;

}

public void setY(int newY){  //没有分配空间

 y=newY;

}

 

}

 

public class ShowDemo{

public static void main(String[] args){

System.out.println("静态变量x="+StaticDemo.getX());

 

/* 非法,运行出错,why,两种变量类型不一样,

  y是实例变量,无法通过类来输出,y在内存不存在,他们开辟在不同空间

 

 */

StaticDemo a =new StaticDemo();

StaticDemo b =new StaticDemo();

StaticDemo demo =new StaticDemo();//开辟两块内存空间

 

System.out.println("实例变量 y="+demo.getY());//变量初始化

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="+a.getX());

System.out.println("实例变量 b.y="+a.getY());

}

}

 

 

x是静态变量,是一个类,而y是实例变量,不能通过类来输出,既然是实例变量,就应该创建类的实例对象。只有静态的方法才能通过类访问,静态方法只能访问静态变量。

posted on 2015-10-17 16:57  覃兽兽  阅读(203)  评论(0编辑  收藏  举报