A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

大麦田怪圈

中级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 大麦田怪圈 中级黑马   /  2015-7-31 21:29  /  246 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

方法中为什么不能定义静态成员???

1 个回复

倒序浏览
本帖最后由 一枚小小媛 于 2015-7-31 21:42 编辑

我是这么理解的
①静态方法 可以在没有产生类对像的时候使用(利用 类名.方法名 调用)
②非静态方法必须产生类对像才可以使用(类 对象名 = new 类 ->  对象名.方法名 )
③被static修饰的对象,在相同JVM中只有唯一实例。表现出来就是其他对象共享此对象 (共用相同的对象)
④一个类的静态成员(变量和方法)其实可以说是属于类本身的,在类加载的时候就会分配内存,可以通过类名直接去访问。而非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象去访问这些非静态的成员(变量和方法)。
试想一下,一个类的对象还没new出来,这个非静态的方法就和类一起被加载了?是不是有一点穿越的感觉撒?所以这种前后顺序,规定了非静态的方法不能调用已经是静态修饰的成员。


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马