Java 局部变量和成员变量

原创
2019/04/18 15:17
阅读数 348

引出:面向对象编程(Object-oriented)把很多的变量和方法都封装在类中,方便代码调用;这就存在一个问题,声明在类中不同位置的变量在调用时,有那些区别?

先看一个代码:

class Person {
    String name;            //成员变量
    public void eat(){
        int age ;           //局部变量
        age = 12;
        for(int i =  0 ; i< 5 ; i++){
            System.out.println("hello world"+ age);
        }
    }
}

如代码中所示,类中的变量分为成员变量和局部变量。

定义的位置上区别:    
        1. 成员变量是定义在方法之外,类之内的。
        2. 局部变量是定义在方法之内。
    
    作用上的区别:
        1. 成员变量的作用是用于描述一类事物的公共属性的。
        2. 局部变量的作用就是提供一个变量给方法内部使用而已。
    
    生命周期区别:
        1. 成员变量随着对象的创建而存在,随着对象的消失而消失。
        2. 局部变量在调用了对应的方法时执行到了创建该变量的语句时存在,局部变量一旦出了自己的作用域,马上从内存中消失。
    
    初始值的区别:
        1. 成员变量是有默认的初始值
                数据类型     默认的初始值
                int                0
                float              0.0f
                double              0.0
                boolean            false
                char                 ' '
                String(引用数据类型) null
        2. 局部变量是没有默认的初始值的,必须要先初始化才能使用。

内存分析:

对象的内存一般保存在"对象栈"内,栈内存中保存着对象中变量的地址,这些地址均指向堆内存中,真正的变量值其实存储在堆内存中。

 

展开阅读全文
加载中
点击加入讨论🔥(2) 发布并加入讨论🔥
打赏
2 评论
0 收藏
0
分享
返回顶部
顶部