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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈汉维 中级黑马   /  2012-7-27 19:33  /  5654 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

老毕的视频里只说到成员变量和局部变量。成员变量就是全局变量吗?知道的请说下,谢谢!

11 个回复

倒序浏览
成员变量指的是在类的范围内定义的变量,在这个类中,也可叫做全局变量。局部变量指的是在方法里定义的变量。
回复 使用道具 举报
是?还有什么要问的不?作用于类的变量就是全局变量(成员变量或者称之为数据成员再或者称之为属性),方法称之为函数或者对象的表现行为,局部变量作用于方法中
回复 使用道具 举报
说实在的,JAVA没有真正意义上的全局变量,真正的全局变量是整个工程项目都能用的变量,显然JAVA无法做到这点,全局变量是面向过程编程的一个说法,比如C语言就能做到。其实不必太拘泥说全局、局部什么的,只要知道它们的作用范围就行。
回复 使用道具 举报

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"; //局部变量 (生命周期最短,方法执行完了就回收)
   }
}
回复 使用道具 举报
Java中是没有全局变量这个概念的,Java不能像C++那样在类外定义全局变量。因为Java是安全的,跨平台的语言。
Java中只有全局变量和局部变量。
全局变量:在类中定义的变量,该类中的方法都可以访问这个变量。它的作用域为整个类
局部变量:在类的方法或内部代码块中定义的变量,该变量只能作用在这个方法或内部代码块中。类中的其他方法或内部代码块无法访问该变量的。它的作用域为方法或内部代码块的括号中。
全局变量和局部变量的区别主要是变量的作用域不同。
回复 使用道具 举报
多看两遍视频就懂了
回复 使用道具 举报
田向向 发表于 2012-7-27 20:04
多看两遍视频就懂了

就是就是  多看两遍! :loveliness:
回复 使用道具 举报
谢谢各位的回答。
看过一遍,正在看第二遍,貌似java里都说成员变量和局部变量,但是javascript却有说到全局变量和局部变量。
看来java里是叫成员变量,javascript里叫全局变量。
回复 使用道具 举报
张孝祥老师说这里用到了:自动装箱与拆箱(-128~127 享元模式 flyWeight)

回复 使用道具 举报
类中用static修饰的变量其实就是全局变量了,它是跟着类的加载而加载的,生命周期最长
回复 使用道具 举报
本帖最后由 曹晓涵 于 2012-7-27 20:55 编辑

java中是没有全局变量这个概念的,因 为JAVA当初出现的初衷就是为了安全性和跨平台性,所以去掉了类似C、C++中的全局变量的概念。
java提供了public static关键字来实现一个全局的变量。被声明为static的变量不需要实例化对象即可直接使用类名来引用之,这虽然不叫全局变量,但实际使用中和全局变量的意思是一样的。
JAVA中不应该有所谓全局变量的概念,全局变量严重 影响了封装和模块化,所以不需要所谓的全局变量,也可以完全不用全局变量,可以写一个类,定义局部变量,并为该类定义一些操作变量的方法,通过调用可以更改变量的这些get(),set()等方法来达到使用全局变量的目的。

点评

提醒一下这位同学,好的资料是可以引用,但是请附上引用资料的来源地址。  发表于 2012-7-27 21:58

评分

参与人数 1黑马币 +10 收起 理由
陈汉维 + 10 非常感谢,明白了

查看全部评分

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