Java基础问题:static方法中为什么不能使用非static的方法或变量
2014-09-15 10:17
381 查看
对于一般的非static成员变量&方法,需要有一个对象的实例才能调用,所以要先生成对象的实例,他们才会实际的分配内存空间。 而对于static的对象&方法,在程序载入时便已经分配了内存空间,他只和特定的类想关联,无需实例化。 所以不是不能调用,而是要先实例化后,配合作用域进行调用。 可以调试一下下面的程序,就可以看出,static方法和对象是在程序载入的时候已经分配了空间。 如果在static方法中调用no static方法或是对象,那么就需要使用到该方法所属类的实例名称。 而在分配static空间的时候,这个类还没有被实力化,所以出错。
相关文章推荐
- Java的static方法为什么不允许直接使用非static的变量
- 黑马程序员---java基础---面向对象中的构造方法及static关键字,变量的问题
- Java基础--关于static的变量和方法使用的一些不解
- Java_类和对象(完美总结)_转载_覆盖和隐藏的区别,覆盖就不能使用了,而隐藏提供全局方法名或者全局变量名还可以使用
- Java 中的 static 使用之静态变量,静态方法和静态初始化块
- java中静态方法中为什么不能使用this、super和直接调用非静态方法
- 【JAVA基础】关于JAVA中的static方法、并发问题以及JAVA运行时内存模型
- java中为什么静态方法不能访问非静态方法或者变量
- java中静态(static)的方法为什么不能重写(override)
- JAVA基础day05 面向对象思想 成员变量和方法 封装 构造方法和this的使用
- java基础七(成员变量 局部变量 匿名对象 封装 设计原则 private this 构造方法 static)
- Java 中,为什么在静态方法中可以调用的方法、可以使用的成员变量必须是静态的?
- Ubuntu 配置Java环境变量后 使用Java -version 提示 java已包含在下列软件包中 问题的解决方法
- webview js 与java代码交互问题(成员变量名 和方法名不能重名 啃爹啊)
- java中interface中的方法为什么不能是static方法?
- java为什么不能在静态域或方法中引用类型变量?
- 【Java基础】13、抽象方法不能是static或native或synchroniz 原因及误解
- 【问题解决】java中为什么不建议使用DataInputStream 的readLine()方法
- Java基础之子类会不会继承父类的static变量和static方法
- 关于Java为什么配置好环境变量但是不能在命令行cmd运行javac的问题