成员变量与局部变量

成员变量与局部变量一、成员变量在类中定义,用来描述对象将要有什么。二、局部变量在类的方法中定义,在方法中临时保存数据。三、成员变量和局部变量的区别1)作用域不同局部变量的作用域仅限于定义它的方法.成员变量的作用域在整个类内部都是可见的.2)初始值不同成员变量有默认的初始值.局部变量没有默认的初始值,必须自行设定初始值.3)存储位置不同成员变量是在对象创建以后存在于堆中,对象回收时,成员变量消失….

一、成员变量

在类中定义,用来描述对象将要有什么。

二、局部变量

在类的方法中定义,在方法中临时保存数据。

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

1)作用域不同
        局部变量的作用域仅限于定义它的方法.
        成员变量的作用域在整个类内部都是可见的.
2)初始值不同
        成员变量有默认的初始值.
        局部变量没有默认的初始值,必须自行设定初始值.
3)存储位置不同
        成员变量是在对象创建以后存在于堆中,对象回收时,成员变量消失.
        局部变量是在方法被调用时存在于栈中,方法调执行结束,从栈中清除.
4)生命周期不同
        对象的创建而创建,对象回收时,成员变量消失.
        随着方法的调用被创建,方法执行结束,从栈中清除.

代码示例如下:

public class Variable {
    /**
     * 成员变量
     */
    public int count;
    public int x;
    public static int y;

    public void fun01() {
        int a = 10;
        System.out.println("fun01()中a的值 >>> " + a);
    }

    public void fun02() {
        int a = 20;
        System.out.println("fun02()中a的值 >>> " + a);
    }

    public void fun03() {
        int a = 30;
        int b;
        System.out.println("fun03()中a的值 >>> " + a);
        // The local variable b may not have been initialized
        // java: 可能尚未初始化变量b
        // 局部变量 如果被调用初始化
        // System.out.println("fun03()中b的值 >>> " + b);
    }

    public void fun04() {
        System.out.println("成员变量count的值 >>> " + count);
    }

    public void fun05() {
        System.out.println("成员变量count的值 >>> " + count++);
    }

    public void fun06() {
        System.out.println("成员变量count的值 >>> " + ++count);
    }

    public void fun07(){
        System.out.println("非静态成员变量x的值 >>> " + ++x);
        System.out.println("静态成员变量y的值 >>> " + ++y);
    }
}
public class VariableTest {
    @Test
    public void test01(){
        Variable variable = new Variable();
        // fun01()中a的值 >>> 10
        variable.fun01();
        // fun02()中a的值 >>> 20
        variable.fun02();
        // fun03()中a的值 >>> 30
        variable.fun03();
        // 成员变量count的值 >>> 0
        variable.fun04();
        // 成员变量count的值 >>> 0
        variable.fun05();
        // 成员变量count的值 >>> 2
        variable.fun06();
    }
    @Test
    public void test02(){
        Variable variable = new Variable();
        // 成员变量count的值 >>> 1
        variable.fun06();
        // 成员变量count的值 >>> 2
        variable.fun06();
    }

    @Test
    public void test03(){
        Variable variable01 = new Variable();
        Variable variable02 = new Variable();
        // 成员变量count的值 >>> 1
        variable01.fun06();
        // 成员变量count的值 >>> 2
        variable01.fun06();
        // 成员变量count的值 >>> 1
        variable02.fun06();
    }
    @Test
    public void test04(){
        Variable variable01 = new Variable();
        Variable variable02 = new Variable();
        // 非静态成员变量x的值 >>> 1
        // 静态成员变量y的值 >>> 1
        variable01.fun07();
        // 非静态成员变量x的值 >>> 1
        // 静态成员变量y的值 >>> 2
        variable02.fun07();
        // 非静态成员变量x的值 >>> 2
        // 静态成员变量y的值 >>> 3
        variable01.fun07();
        // 非静态成员变量x的值 >>> 2
        // 静态成员变量y的值 >>> 4
        variable02.fun07();
    }


}

今天的文章成员变量与局部变量分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/24840.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注