黑马程序员技术交流社区
标题:
java里有没有全局变量这个概念?
[打印本页]
作者:
陈汉维
时间:
2012-7-27 19:33
标题:
java里有没有全局变量这个概念?
老毕的视频里只说到成员变量和局部变量。成员变量就是全局变量吗?知道的请说下,谢谢!
作者:
李东升
时间:
2012-7-27 19:42
成员变量指的是在类的范围内定义的变量,在这个类中,也可叫做全局变量。局部变量指的是在方法里定义的变量。
作者:
全海波
时间:
2012-7-27 19:42
是?还有什么要问的不?作用于类的变量就是全局变量(成员变量或者称之为数据成员再或者称之为属性),方法称之为函数或者对象的表现行为,局部变量作用于方法中
作者:
fiend
时间:
2012-7-27 19:46
说实在的,JAVA没有真正意义上的全局变量,真正的全局变量是整个工程项目都能用的变量,显然JAVA无法做到这点,全局变量是面向过程编程的一个说法,比如C语言就能做到。其实不必太拘泥说全局、局部什么的,只要知道它们的作用范围就行。
作者:
于星星
时间:
2012-7-27 19:51
标题:
D
本帖最后由 于星星 于 2012-7-27 19:54 编辑
java里的变量有生命周期的区分。一般我们常说的是类的成员变量和方法中的局部变量。
成员变量也叫类的属性,一般带有访问控制属性的,而全局变量虽然也有类的属性,
但全局变量严重影响了封装和模块化,一般的全局变量前面要加上static和 fina属性其中,
static使该变量任何类都可用(方法 ClassName.全局变量名),而 fina则使得变量不可更改,
基本上算是常量了,这也在一定程度上防止对变量的非法修改。
比如以下代码:
public class Demo{
private String name; //成员变量 (与对象的生命周期相同)
static String age; // 全局变量(生命周期最长,与类同生共死)
final int score=80; //全局变量?它的生命周期又是多长呢?
public void show(){
String sex ="man"; //局部变量 (生命周期最短,方法执行完了就回收)
}
}
作者:
李菁
时间:
2012-7-27 19:57
Java中是没有全局变量这个概念的,Java不能像C++那样在类外定义全局变量。因为Java是安全的,跨平台的语言。
Java中只有全局变量和局部变量。
全局变量:在类中定义的变量,该类中的方法都可以访问这个变量。它的作用域为整个类
局部变量:在类的方法或内部代码块中定义的变量,该变量只能作用在这个方法或内部代码块中。类中的其他方法或内部代码块无法访问该变量的。它的作用域为方法或内部代码块的括号中。
全局变量和局部变量的区别主要是变量的作用域不同。
作者:
田向向
时间:
2012-7-27 20:04
多看两遍视频就懂了
作者:
陈虹旭
时间:
2012-7-27 20:17
田向向 发表于 2012-7-27 20:04
多看两遍视频就懂了
就是就是 多看两遍! :loveliness:
作者:
陈汉维
时间:
2012-7-27 20:22
谢谢各位的回答。
看过一遍,正在看第二遍,貌似java里都说成员变量和局部变量,但是javascript却有说到全局变量和局部变量。
看来java里是叫成员变量,javascript里叫全局变量。
作者:
于星星
时间:
2012-7-27 20:34
张孝祥老师说这里用到了:自动装箱与拆箱(-128~127 享元模式 flyWeight)
作者:
吴立杰
时间:
2012-7-27 20:41
类中用static修饰的变量其实就是全局变量了,它是跟着类的加载而加载的,生命周期最长
作者:
曹晓涵
时间:
2012-7-27 20:54
本帖最后由 曹晓涵 于 2012-7-27 20:55 编辑
java中是没有全局变量这个概念的,因 为JAVA当初出现的初衷就是为了安全性和跨平台性,所以去掉了类似C、C++中的全局变量的概念。
java提供了public static关键字来实现一个全局的变量。被声明为static的变量不需要实例化对象即可直接使用类名来引用之,这虽然不叫全局变量,但实际使用中和全局变量的意思是一样的。
JAVA中不应该有所谓全局变量的概念,全局变量严重 影响了封装和模块化,所以不需要所谓的全局变量,也可以完全不用全局变量,可以写一个类,定义局部变量,并为该类定义一些操作变量的方法,通过调用可以更改变量的这些get(),set()等方法来达到使用全局变量的目的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2