成员变量和局部变量的区别
在实体类中只有属性和方法
区别一:定义的位置
首先在定义类中的变量是成员变量
定义方法种的是局部变量
区别二:在内存中的位置不同
成员变量存储在堆内存的对象中
局部变量存储在栈内存的方法中
区别三:生命周期不同(什么时候创建,什么时候销毁!)
成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失(gc垃圾回收机制)
局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失
区别四:初始化不同
成员变量因为在堆内存中,所有默认的初始化值
局部变量没有默认的初始化值,必须手动的给其赋值才可以使用。
例子:
局部变量:存在某个方法中的变量就叫局部变量,局部变量一旦声明就必须赋值 否则不能使用
1 2 3 4 5 6 7 8 9 10 11 12 13 | class Person { String name; char sex; int age; public void eat(){ int num = 10; //不进行赋值是在方法体内不能用的 编译的时候就会报错 尚未初始化变量 System. out .println(num+ "吃" ); } public void sleep(){ System. out .println( "睡觉" ); } } |
成员变量
存在某个类中的并且类方法外就叫成员变量。成员变量可以在类中的任何地方访问
局部变量和成员变量的名字可以重名 采用就近原则
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class Person { String name; char sex; int age; public void eat(){ int num = 10; //不进行赋值是在方法体内不能用的 System. out .println(num+ "吃" ); //如果这个地方使用时跟成员变量重名时 使用就近原则 此时num的值是10 } public void sleep(){ System. out .println( "睡觉" ); } } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步