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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈小红 中级黑马   /  2012-11-1 22:55  /  1658 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问成员变量就是全局变量吗?有没有什么区别?跟局部变量又有什么区别?

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1

查看全部评分

4 个回复

倒序浏览
定义在类中 函数外 为成员变量
定义在函数内 为局部变量
成员变量 在整个类中都有效
局部变量作用范围只在函数(方法)内有效
class Demo
{
  int x = 5;//次处为成员变量  作用范围整个类
  void show()
  {
  int y=4;//次处为局部变量 作用范围 show函数内有效
  }
}
回复 使用道具 举报
成员变量也叫类的属性,一般带有访问控制属性的,而全局变量虽然也有类的属性,但全局变量严重影响了封装和模块化(百度)局部变量是在方法中定义的
回复 使用道具 举报
带有 public 修饰的成员变量 称为 全局变量
全局变量 与 局部变量的 区别
主要 在生命周期 上
全局变量 由于是成员变量 所有生命周期 在整个 类范围内
局部变量 生命 周期 一般在{ }之内
全局 变量 有默认初始值
局部变量没有 默认初始值 ,使用前 必须显示初始化
回复 使用道具 举报
本帖最后由 吴愿涛 于 2012-11-1 23:50 编辑

可以简单的理解为,一个变量的作用域是在所在的{}中。如果用同名变量,被覆盖。
例子:
public class TestVariableScope {
    int i = 1;
    void test(){
        int i = 2;
        System.out.println(i);
    }
   
    public static void main(String[] args) {
        TestVariableScope variableScope = new TestVariableScope();
        System.out.println("成员变量: " + variableScope.i);
        System.out.print("局部变量: ");
        variableScope.test();
    }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马