码迷,mamicode.com
首页 > 其他好文 > 详细

一个有趣的问题

时间:2015-10-17 17:48:13      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

//静态变量

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

 

 

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是实例变量,不能通过类来输出,既然是实例变量,就应该创建类的实例对象。只有静态的方法才能通过类访问,静态方法只能访问静态变量。

一个有趣的问题

标签:

原文地址:http://www.cnblogs.com/1995-qxl/p/4887775.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!