黑马程序员技术交流社区

标题: 引用变量类型的成员变量的问题,求助!!! [打印本页]

作者: 于XINCHENG    时间: 2013-9-5 18:00
标题: 引用变量类型的成员变量的问题,求助!!!
  1. public class Test01 {
  2. static Test01 testA = new Test01(); //注意:在这里不加static下面的System在调用时就会出现运行异常,为什么会这样?
  3. public static void main(String[] args) {
  4. Test01 testA = new Test01();
  5. System.out.println(testA.equals(new Test01().testA));
  6. }
  7. }
复制代码
我被一个引用变量类型的成员变量困扰住了,问题请参见注释

作者: xiaoxu    时间: 2013-9-5 18:15
static静态方法只能访问静态成员,因为main是静态方法,所以只能访问静态的成员
作者: gulup    时间: 2013-9-5 18:17
这个并不是引用数据类型和基本数据类型的问题。
  1. public class Test{
  2.         int i;
  3.         public static void main(String[] args) {
  4.                 System.out.println(i);
  5.         }
  6. }
复制代码
这样也是会报错的。因为你的main方法是静态的,静态方法不能调用非静态的属性和方法。
因为静态的方法和属性是当类被加载到虚拟机中时就会被分配到内存空间上,可以直接执行的。
但是非静态的属性和方法必须是在创建实例化时才会分配到内存空间的。而如果你没有创建实例化对象的时候就通过静态的方法去调用非静态的属性或者方法,那就是没东西可以调,那明显就是错误的。
所以规定,静态不能调用非静态。

作者: 杨增坤    时间: 2013-9-5 19:50
楼主 你的问题如果解决了!


请把您的问题的"未解决"更改为"已解决"!


谢谢合作!






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2