美文网首页
成员变量,局部变量

成员变量,局部变量

作者: 临木有希 | 来源:发表于2018-07-28 11:08 被阅读0次

    1、在类中的位置不同
    成员变量: 在类中定义
    局部变量:在方法中定义或者方法的参数
    2、在内存中的位置不同
    成员变量:在堆内存(成员变量属于对象,对象进堆内存)
    局部变量: 在栈内存(局部变量属于方法,方法进栈内存)
    3、生命周期不同
    成员变量: 随着对象的创建而存在,随着对象的销毁而消失
    局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
    4、初始化值不同
    成员变量:有默认初始化值,引用类型默认为null
    局部变量: 没有默认初始化值,必须定义,赋值, 然后才能使用
    注意:
    局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。

    public class Test2{
        public static void main(String[]args){
            
            Person p1 = new Person();
            
            //属性未封装,直接赋值
            //p1.name ="飞飞";
            //p1.age = 18;
            
            //属性封装了,通过调用方法
            p1.setName("飞飞");
            p1.setAge(17);
            
            p1.run(10);
            
            p1 = null;
            
            
        }
    }
    
    //没有封装之前
    class Person{
        //属性的封装
        private String name;//成员变量,在类中定义
        private int age;//成员变量,在类中定义
        
        
        //getter and setter
        
        //对外提供一个为mane属性设置的方法
        public void setName(String name){
            this.name = name;
        }
        //对外提供一个获取name属性的方法
        public String getName(){
            return name;
        }
        public void setAge(int age){
            //this.age = age;
        }
        public int getAge(){
            return age;
        }
        
        public void run(int len){//参数也是局部变量
            int i;
            int m = len;//m也是局部变量
            System.out.println("我跑了"+m+"米");
            //System.out.println(i);必须赋值初始化才正确
            System.out.println(age);//成员变量有默认值
        }
    }
    

    相关文章

      网友评论

          本文标题:成员变量,局部变量

          本文链接:https://www.haomeiwen.com/subject/iafomftx.html