全局变量和成员变量的区别分析

编程语言及工具

105人已加入

描述

  成员变量

  成员变量是指定维度的成员变量,用于标识某个维度成员。

  简介由 Analysis Services 内部使用的值,以标识某个维度成员。MemberKeyColumn 属性指定维度的成员变量。例如,1 到 12 之间的某个数字可以是相应于年中的某个月的成员变量。

  java成员变量和方法 成员变量:在类体的变量部分中定义的变量,也称为字段。我们先来看一个Clothes类的成员变量:

  package ch05.sample

  ;public class Clothes

  {

  String id; //实例变量

  private String colorType; //实例变量private int size; //实例变量private static String depart; //类变量final String design=“yangzi”; //常量}

  代码中的实例变量、类变量、常量都属于成员变量,那么其区分的依据是什么?这与变量的修饰符有关系,也就是上面代码中的private、static、final等修饰符。

  成员变量

  全局变量

  全局变量是编程术语中的一种,源自于变量之分。

  变量分为局部与全局,局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。

  全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。一个局部变量在被其它对象引用时,会是一个空值。但全局变量却不会出现这种情况。

  面向对象语言中的使用

  在现代的面向对象语言如Java,C++,C#,Ruby中,由于变量都是封装在类里面的,对别的类不可见,所以已经几乎完全抛弃了全局变量的概念。然而,可以通过把一个类定义为public static,把类成员变量也定义为public static,使该变量在内存中占用固定、唯一的一块空间,来实现全局变量的功能。

  成员变量

  成员变量与全局变量的区别

  全局变量:也叫成员变量,是指在类中定义的变量;它在整个类中都有效

  全局变量又可分为:类变量和实例变量

  1.类变量:又叫静态变量 用static修饰 它可以直接用类名调用 也可以用对象调用 而且所有对象的同一个类变量都是共享同

  一块内存空间的

  2.实例变量:不用static修饰 它只能通过对象调用 而且所有对象的同一个实例变量是共享不同的内存空间的

  局部变量:是指那些在方法体中定义的变量以及方法的参数 它只在定义它的方法内有效

  注意:如果某个方法中的局部变量的名字与全局变量的名字相同 则该全局变量在这个方法中暂时失效

  public class Test{

  int a=0; //全局变量

  public static void main(String[] args){

  int b =0;//局部变量

  }

  }

  先看下面两段程序:

  程序一:

  public class Variable

  {

  int i;

  void test()

  {

  int j=8;

  if(j==i)

  System.out.println(“相等”);

  else

  System.out.println(“不相等”);

  }

  public static void main(String[] args)

  {

  Variable v=new Variable();

  v.test();

  }

  }

  程序二:

  public class Variable

  {

  void test()

  {

  int i;

  int j=8;

  if(j==i)

  System.out.println(“相等”);

  else

  System.out.println(“不相等”);

  }

  public static void main(String[] args)

  {

  Variable v=new Variable();

  v.test();

  }

  }

  ----------------------------------------------------------------------------------------------------------

  第一个程序很正常,编译时不会出错。第二个程序编译时会提示如下错误:

  D:\Program\java\test》javac Variable.java

  Variable.java:9: 可能尚未初始化变量 i

  if(j==i)

  ^

  1 错误

  之所以会出现这样的错误是因为:成员变量有默认值,(被final修饰且没有static的必须显式赋值),局部变量不会自动赋值

  ===========================================================

  类体分为两部分。变量定义部分所定义的变量被称为类的成员变量,在方法体中定义的变量和方法的参数都被称为局部变量

  java中成员变量和局部变量的区别

  1.成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及static修饰;两者都可以定义成final型

  2.成员变量存储在堆,局部变量存储在栈

  3.存在时间不同

  4.成员变量有默认值,(被final修饰且没有static的必须显式赋值),局部变量不会自动赋值

  -------------------------------------------------------------------------------------------------------------

  顾名思意了

  什么是局部,方法内部,块内部都是局部,执行指令退出那个局部,局部变量自动清除

  比如方法中,不用说

  块中

  {

  int i=0; //这是一个局部变量,它的作用范围就在其中

  }

  成员变量就会涉及到谁的成员,类的成员?实例的成员?

  class A{

  int i=0; //实例的成员

  static j=1;//类的成员

  }

  static 的差别,是否依赖于实例而存在

  ----------------------------------------------------------------------------------------------------------

  成员变量:作为类的成员而存在,直接存在于类中。

  局部变量:作为方法或语句块的成员而存在,存在于方法的参数列表和方法定义中。

  局部变量在使用前必须被程序员主动的初始化,和此形成对比,系统中的成员变量则会被系统提供一个默认的初始值。所以在语法上,类的成员变量能够定义后直接使用,而局部变量在定义后先要赋初值,然后才能使用。

  所有类的成员变量可以通过this来引用。成员变量又分成俩中类型:实例变量和静态变量。静态变量在定义时要使用static关键字

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分