成员变量_成员变量初始化 - CSDN
成员变量 订阅
成员变量是指定维度的成员变量,用于标识某个维度成员。 展开全文
成员变量是指定维度的成员变量,用于标识某个维度成员。
信息
属    性
指定维度的成员变量
外文名
Member Variables
中文名
成员变量
目    的
标识某个维度成员
成员变量简介
由 Analysis Services 内部使用的值,以标识某个维度成员。MemberKeyColumn 属性指定维度的成员变量。例如,1 到 12 之间的某个数字可以是相应于年中的某个月的成员变量。
收起全文
精华内容
参与话题
  • 之前在刚开始学习Java的时候,就谈了谈Java基础中的变量(见 http://www.linuxidc.com/Linux/2015-02/113862.htm),虽然知道这货以后会经常用到,但没想到了基本语法这里,竟然有...先从成员变量下刀。 成员变量

    之前在刚开始学习Java的时候,就谈了谈Java基础中的变量(见 http://www.linuxidc.com/Linux/2015-02/113862.htm),虽然知道这货以后会经常用到,但没想到了基本语法这里,竟然有冒出来了成员变量、局部变量和静态变量。变来变去太容易让人搞晕了,挑拣出来梳理一下喽!

    要想区分这哥仨,首先,我们得知道它们分别是什么。先从成员变量下刀。

    成员变量

           我们来研究一个事物:

                   属性:外在特征;例如人的身高,体重

                   行为:能够做什么;例如人有说话,打球等行为。

           而在Java语言中,最基本的单位是类,类就是用来体现事物的。

           用类class来描述事物也是如此:

                   属性:对应类中的成员变量

                   行为:对应类中的成员函数

           定义类其实就是在定义类中的成员(成员变量和成员函数)

          拓展:类是一个抽象的概念,而对象就是类的具体的存在,体现。例如:生活中的汽车,可以看做一个类,我们称之为汽车类,每一台车都有颜色和轮胎数(可以定义为属性,即成员变量),每一台车都可以跑(即车的行为,对应类总的成员函数),我们把汽车实例化一下,即会产生一个对象,比如奔驰、宝马(BMW)。

    Demo1:

    public class Car {
            private String color; // 定义汽车颜色,全局变量
            private int numLuntai; // 定义汽车轮胎数,全局变量
     
            public Car(String color, int numLuntai){
                      super();
                      this.color = color;
                      this.numLuntai = numLuntai;
            }
            public void run() {
                      System.out.println(this.numLuntai+ "个轮子的" +this.color + "轿车在马路上行驶着");
            }
    }

     

    public class ClassTest {
            public static void main(String[] args){
                      Car bmw = new Car("黑色", 4);      // 创建一个轿车对象,名字为bmw
                      bmw.run();
            }
    }

    运行结果:

    4个轮子的黑色轿车在马路上行驶着

          其中color和numLuntai就称为Car 类的成员变量,这个属性能够用来描述一个类的属性,否则,它就应该定义为局部变量

          例如一个for循环中的i即是局部变量。

                      for(int i = 0; i < args.length; i++) {
                              ......
                      }

    又例如写在成员方法中变量是局部变量。

    publicclass Car {
            private String color; // 定义汽车颜色,全局变量
            private int numLuntai; // 定义汽车轮胎数,全局变量
            public Car(String color, int numLuntai){
                      super();
                      this.color = color;
                      this.numLuntai = numLuntai;
            }
    public void run() {
                      String carName=”宝马牌”;    //这个就是局部变量
                      System.out.println(this.numLuntai+ "个轮子的" +this.color + carName+"轿车在马路上行驶着");
            }
    }
    publicclass ClassTest {
            public static void main(String[] args){
                      Car bmw = new Car("黑色", 4);      // 创建一个轿车对象,名字为bmw
                      bmw.run();
            }
    }

    结果:

    4个轮子的黑色宝马牌轿车在马路上行驶着 

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

           成员变量:

              ①成员变量定义在类中,在整个类中都可以被访问。

              ②成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。

              ③成员变量有默认初始化值。

          局部变量:

              ①局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。

              ②局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。

              ③局部变量没有默认初始化值 

          在使用变量时需要遵循的原则为:就近原则

          首先在局部范围找,有就使用;接着在成员位置找。

    静态变量

          由static修饰的变量称为静态变量,其实质上就是一个全局变量。如果某个内容是被所有对象所共享,那么该内容就应该用静态修饰;没有被静态修饰的内容,其实是属于对象的特殊描述。

    示例:

    class Person{
          //成员变量,实例变量
          String name;
          //静态变量,类变量
          //所有对象共享的属性用static修饰
          static String country = "CN";
          public void show(){
                System. out.println(country + ":" + name);
                //等效语句:System.out.println(Person.country+ ":" + this.name);
          }
    }
    class StaticDemo{
          public static void main(String[]args){
                Personp = new Person();
                System. out.println(p.country);
                //可以用类名直接调用
                System. out.println(Person.country);
          }
    }

    结果:

    CN

    CN 

    成员变量和静态变量的区别

          1、两个变量的生命周期不同

                成员变量随着对象的创建而存在,随着对象被回收而释放。

                静态变量随着类的加载而存在,随着类的消失而消失。

          2、调用方式不同

                成员变量只能被对象调用。

                静态变量可以被对象调用,还可以被类名调用。

          3、别名不同

                成员变量也称为实例变量。

                静态变量也称为类变量。

          4、数据存储位置不同

                成员变量存储在堆内存的对象中,所以也叫对象的特有数据。

                静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。

    列表对比:

           成员变量、局部变量、静态变量的区别 

     

    成员变量

    局部变量

    静态变量

    定义位置

     在类中,方法外

    方法中,或者方法的形式参数

    在类中,方法外

    初始化值

    有默认初始化值

    ,先定义,赋值后才能使用

    有默认初始化值

    调用方式

    对象调用

    ---

    对象调用,类名调用

    存储位置

    堆中

    栈中

    方法区

    生命周期

    与对象共存亡

    与方法共存亡

    与类共存亡

    别名

    实例变量

    ---

    类变量

     

    小结:

            尽管三者的本质都是变量,可是使用时却有相当大的区别,稍不留神就可能陷入陷阱。且先记住:在一个类中,如果一个变量能够用来描述一个类的属性,那就定义为成员变量,否则,它就应该定义为局部变量。而如果一个变量在全局中都能使用(某个内容是被所有对象所共享),那么我们就可以把这个变量用static来修饰,即为静态变量。(还要注意它与静态方法的紧密联系,这里且不细述了)

    展开全文
  • java成员变量是什么

    千次阅读 2019-07-02 07:58:28
    java中 变量分成员变量 和局部变量 成员变量是指这个类的变量,局部变量是类中方法体内定义的变量。

    java中 变量分成员变量 和局部变量 成员变量是指这个类的变量,局部变量是类中方法体内定义的变量。

    展开全文
  • 关于java成员变量和局部变量

    万次阅读 多人点赞 2019-06-06 21:01:40
    1、成员变量和局部变量简述 在Java语言里,根据定义变量位置的不同,可以将变量分成两大类:成员变量(存在于堆内存中,和类一起创建)和局部变量(存在于栈内存中,当方法执行完成,让出内存,让其他方法来使用内存)...

    1、成员变量和局部变量简述

    在Java语言里,根据定义变量位置的不同,可以将变量分成两大类:成员变量(存在于堆内存中,和类一起创建)和局部变量(存在于栈内存中,当方法执行完成,让出内存,让其他方法来使用内存)。二者的运行机制存在较大差异。

    1.1成员变量

    类变量从该类的准备阶段起开始存在,直到系统完全销毁这个类,类变量的作用域与这个类的生存范围相同;

    而实例变量则从该类的实例被创建起开始存在,直到系统完全销毁这个实例,实例变量的作用域与对应实例的生存范围相同。

    正是基于这个原因,可以把类变量和实例变量统称为成员变量。其中类变量可以理解为类成员变量,它作为类本身的一个成员,与类本身共存亡;实例变量则可以理解为实例成员变量,它作为实例的一个成员与实例共存亡。

    只要类存在,类就可以访问类变量         类.类变量

    只要实例存在,实例就可以访问实例变量        实例.实例变量

    当然实例也可以访问类变量。但是需要注意的是因为实例不拥有类变量,所以通过实例来访问类变量进行操作,实际上是对类变量进行操作 ,当有其他实例来访问类变量时,访问的类变量是被对象访问操作过的类变量。

    成员变量无需显示初始化,只要为一个类定义了类变量或实例变量,系统就会在这个类的准备阶段或创建该类的实例时进行默认初始化。

    1.2局部变量

    局部变量根据定义形式的不同,又可以分为如下三种:

    形参:在定义方法签名时定义的变量,形参的作用域在整个方法中都有效

    方法局部变量:在方法体内定义的局部变量,它的作用域是从定义该变量的地方生效,到该方法结束时失效

    代码块局部变量:这个局部变量的作用域从定义该变量的地方生效,到该代码结束时失效。

    一个变量只在一对{}中起作用。。

    java允许局部变量和成员变量同名,如果方法中局部变量和成员变量同名,局部变量就会覆盖成员变量,如果需要在这个方法中引用被覆盖成员变量,则可使用this(对于实例变量)或类名(对于类变量)作为调用者来限定访问成员变量。

    2、成员变量的初始化和内存中的运行机制

    接下来以下面代码来举例说明成员变量的初始化和内存中的运行机制

     

    复制代码

     1 public class Person {
     2     public int num;
     3     public String name;
     4     
     5     public static void main(String[] args) {
     6         Person p1 = new Person();
     7         Person p2 = new Person();
     8         p1.num = 2;
     9         p2.num = 3;
    10         p1.name = "张三";
    11         p2.name = "李四";
    12     }
    13     
    14 
    15 }

    复制代码

     

    当程序执行Person p1 = new Person();时,如果这行代码是第一次使用Person类,则系统通常会在第一次使用Person类时加载这个类,并初始化这个类,在类的准备 阶段,系统将会为该类的类变量分配内存空间,并指定默认初始值。当person类初始化完成后,系统内存中的存储示意图如下图所示。

     可以看出,当person类初始化完成后,系统将在堆内存中为Person分配一块内存空间,实际上是创建了一个类对象,在这块内存区里包含了保存num类变量的内存,并设置num的默认初始值为0。

    系统接着创建了一个Person对象,并把这个Person对象赋给p1变量,Person对象包含了名为name的实例变量,实例变量是在创建实例时分配内存空间并指定初始值的。当创建了第一个person对象后,系统内存中的存储示意图如下图所示。

    从上图可以看出num不属于对象,它属于类,所以创建第一个对象时并不需要为num分配内存空间,系统只是为name分配了内存空间,并指定初始值为null。

    创建第二个对象p2时,由于在创建第一个对象时已经对类进行了初始化,所以在创建p2时对类进行初始化,对象的创建过程与第一个对象的创建过程没有什么区别。

    第二个对象创建完成后,成员变量如上图所示在内存中存储。

    **当程序需要访问类变量时,尽量使用类来作为主调,不要使用对象作为主调,这个可以避免产生歧义。

    3、局部变量的初始化和内存中的运行机制

    *局部变量必须经过显示初始化之后才能使用,系统不会为局部变量执行初始化。定义了局部变量以后,系统并没有给局部变量进行初始化,直到程序给这个局部变量赋给初值时,系统才会为这个局部变量分配内存空间,并将初始值保存到这块内存中。

    *局部变量不属于任何类或者实例,因此它总是保存在方法的栈内存中。如果局部变量是基本数据类型,则该变量直接存储在方法的栈内存中,如果是引用变量则将引用的地址存储在方法的栈内存中。

    *栈内存中的变量无需系统垃圾回收,随着方法或者代码块的运行结束而结束。局部变量通常只保存了具体的值或者引用地址,所以所占的内存比较小。

    4、变量的使用规则

    能不使用成员变量就别使用成员变量

    能不使用方法局部变量就别使用方法局部变量

    使用代码块局部变量性能最好。

     

     

    如果大佬们觉得有用的话  请关注一下小弟的副业 淘宝店https://shop135377658.taobao.com/shop/view_shop.htm?spm=a211vu.server-web-home.category.d53.64f02d5879I9Wp&mytmenu=mdianpu&user_number_id=1709908377

    展开全文
  • @interface Person : NSObject { int age; //成员变量 } @end @implementation Person @end int a; //全局变量 int b = 10; //全局变量 int main(...

        @interface Person : NSObject

        {

            int age;         //成员变量

        }

        @end    


        @implementation Person


        @end


        int a;              //全局变量    

        int b = 10;         //全局变量    


        int main(int argc, const char * argv[]) {

            int num = 10;   //局部变量

            {

                int value;  //局部变量

            }

            return 0;

        }


        1)写在函数和大括号外部的变量, 我们称之为全局变量

            作用域: 从定义的那一行开始, 一直到文件末尾

            局部变量可以先定义在初始化, 也可以定义的同时初始化

            存储: 静态区

            程序一启动就会分配存储空间, 直到程序结束才会释放


        2)写在函数或者代码块中的变量, 我们称之为局部变量

            作用域: 从定义的那一行开始, 一直到遇到大括号或者return

            局部变量可以先定义再初始化, 也可以定义的同时初始化

            存储:

            存储在栈中的数据有一个特点, 系统会自动给我们释放


        3)写在类声明的大括号中的变量, 我们称之为成员变量(属性, 实例变量)

            成员变量只能通过对象来访问

            注意: 成员变量不能离开类, 离开类之后就不是成员变量

                 成员变量不能在定义的同时进行初始化

            存储: (当前对象对应的堆的存储空间中)

            存储在堆中的数据, 不会被自动释放, 只能程序员手动释放

    展开全文
  • 局部变量和成员变量的定义和区别

    千次阅读 2019-11-04 12:10:16
    局部变量和成员变量的区别和定义 局部变量 成员变量 定义位置: 方法或方法的内部 类的内部,方法的外部 默认值: 无默认值 字面值,(与数组相同)的默认值 使用范围: 从定义行到...
  • 成员变量、类变量、局部变量的区别

    万次阅读 多人点赞 2015-10-07 21:00:26
    面向对象编程 1.封装性 面向对象编程核心思想之一就是将数据和对数据的操作封装在一起,通过抽象即从具体的实例中抽取共同的性质形成一般的概念。 2.继承 子类可以继承父类的属性和功能,即子类继承了父类所有的...
  • 成员变量(全局变量)和局部变量 参考博客:https://www.cnblogs.com/tianming18/p/10510353.html TEST1: public class Apple { static int value = 33; public static void main(String[] args) throws ...
  • 如果局部变量的名字和成员变量的名字相同, 要想在该方法中使用成员变量,必须使用关键字this [java] view plain copy class People {   String name = "类体重定义的name";
  • Java 成员变量和成员方法

    千次阅读 2018-12-07 10:25:44
    在 Java 语言中对象的属性以成员变量的形式存在,对象的方法以成员方法的形式存在。 成员变量 在 Java 中对象的属性也称为成员变量。为了了解成员变量,首先定义一个图书类,成员变量对应于类对象的属性,在 Book 类...
  • 成员变量和局部变量的区别

    万次阅读 多人点赞 2018-07-22 19:56:44
    成员变量和局部变量的区别  (1)在类中的位置不同  成员变量:类中方法外  局部变量:方法定义中或者方法声明上  (2)在内存中的位置不同  成员变量:在堆中  局部变量:在栈中  (3)生命周期不同  成员变量:...
  • java中的变量(成员变量、本地变量、类变量)

    万次阅读 多人点赞 2020-04-08 22:12:10
    1、成员变量(实例变量,属性) 2、本地变量(局部变量) 3、类变量(静态属性) 一、成员变量(实例变量,属性) 1.1-成员变量:(在类中定义,访问修饰符修饰符typename=value) 1.2-什么是成员变量成员变量就是类...
  • Python中的类变量和成员变量

    万次阅读 多人点赞 2015-07-07 10:21:43
    本文实例形式讲解了python的类变量和成员变量用法,对于Python程序设计有一定的参考价值。分享给大家供大家参考。具体如下: 先看看下面这段代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
  • @interface Person : NSObject  {   // 成员变量:  ... // 注意: 成员变量不能离开类, 离开类之后就不是成员变量 成员变量不能在定义的同时进行初始化   // 存储: 堆(当前对象对应的堆
  • #encoding:utf-8 class TestClass(object): classval1 = 100 #类变量 def __init__(self): self.memval2 = 200 #成员变量 def memfuntion(self,val = 400): localval3 = 300 #函数内部的局部变量 self.nmval
  • php类成员变量的两种定义方法

    万次阅读 2015-10-10 09:16:06
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class test{  private $name;  private $sex;  function __construct(){  $this->aaa
  • 1.作为GC Roots的对象有以下几种 ...2.成员变量(实例变量)&局部变量&静态变量(类变量)的区别 成员变量(实例变量)&局部变量区别: 作用域 成员变量:针对整个类有效。 局部变量:只在...
  • C++中类的(static)静态成员变量与(static)静态成员函数

    万次阅读 多人点赞 2018-08-04 11:27:28
    而在C++的类中,也有静态成员变量同时还有静态成员函数,先来看看C++中静态成员变量与静态成员函数的语法: #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; class ...
  • 快捷键为: Ctrl + Alt +F
  • Java中关于子类成员变量与父类成员变量同名

    万次阅读 多人点赞 2016-06-24 14:43:36
    重写和重载是针对方法的,子类的变量可以覆盖父类的变量,但是不能改变父类的变量
  • MFC添加成员变量向导(控件变量)

    千次阅读 2011-05-11 16:47:00
    首先在类中删除定义的成员变量和引用的头文件 2.删除相关的头文件和源文件 3.关闭VS,用记事本打开*.vcproj,找到Globals节点,删除与控件变量相关的Global节点 4.重新打开项目添加成员向导即可使用
1 2 3 4 5 ... 20
收藏数 958,554
精华内容 383,421
关键字:

成员变量