day06-对象内存图-成员变量和局部变量的区别
This commit is contained in:
@@ -1,7 +1,30 @@
|
|||||||
package com.inmind.object01;
|
package com.inmind.object01;
|
||||||
|
/*
|
||||||
|
成员变量:处于成员位置的变量
|
||||||
|
成员位置:类中方法外
|
||||||
|
局部变量:在方法中定义的变量
|
||||||
|
|
||||||
|
注意:在方法中,如果使用了成员变量和局部变量同名的变量(brand),符合就近原则,直接使用局部变量
|
||||||
|
|
||||||
|
成员变量与局部变量的区别:
|
||||||
|
1.定义的位置不同:
|
||||||
|
成员变量:类中方法外
|
||||||
|
局部变量:方法中
|
||||||
|
2.作用范围不同
|
||||||
|
成员变量:整个类中
|
||||||
|
局部变量:只能在定义该变量的方法中 使用
|
||||||
|
3.所处内存的位置不同
|
||||||
|
成员变量:在堆内存中
|
||||||
|
局部变量:栈内存中
|
||||||
|
4.默认值不同
|
||||||
|
成员变量:有默认值的
|
||||||
|
局部变量:没有默认值,一定要先赋值,才能使用
|
||||||
|
5.生命周期不同
|
||||||
|
成员变量:随着对象的出现而出现,随着对象的销毁而销毁
|
||||||
|
局部变量:随着方法的出现而出现,随着方法的销毁(弹栈)而销毁
|
||||||
|
*/
|
||||||
public class Phone {
|
public class Phone {
|
||||||
//属性
|
//属性(成员变量)
|
||||||
String brand;
|
String brand;
|
||||||
String color;
|
String color;
|
||||||
double price;
|
double price;
|
||||||
@@ -16,7 +39,8 @@ public class Phone {
|
|||||||
|
|
||||||
|
|
||||||
//打电话
|
//打电话
|
||||||
public void call(String phoneNumber) {
|
public void call(String phoneNumber) {//注意:形参也是局部变量
|
||||||
|
int i = 0;//局部变量
|
||||||
System.out.println("给"+phoneNumber+"打电话");
|
System.out.println("给"+phoneNumber+"打电话");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user