成员变量 和 局部变量
成员变量 和 局部变量 区别
* 1.书写位置不同
* 局部变量:方法中或方法上
* 成员变量:类中 方法外
* 2.初始化值不同
* 局部变量:栈内存中
* 成员变量:堆内存中
* 3.内存存在的位置不同
* 局部变量:随着方法的调用而入栈,随着方法的结束而销毁
* 成员变量:随着对象进入堆内存中创建 随着对象销毁而销毁
* 4.生命周期不同(对变量访问时,要考虑生命周期问题,是否可以访问)
* 局部变量:方法中
* 成员变量:方法外
* 5.初始化
* 局部变量:没有默认值
* 成员变量:跟堆内存一样 默认初始值
public static void fun1(int num)
{
System.out.println(num);
}
//参数是引用数据类型时,如何传参
public static void fun2(Car car)
{
car.name = "劳斯莱斯";
car.color = "红色";
car.Introduce();
}
public static void main(String[] args)
{
//参数是引用数据类型时如何传参
fun1(123);
//先初始化一个car类型的数据
Car car = new Car();
fun2(car);//引用数据类型的传参
//创建一个对象(初始化一个对象)
Car car1 = new Car();
car1.name = "布加迪";
car1.color = "白色";
System.out.println(car1.name);
car1.Introduce();
Car car2 = new Car();
car2.name = "兰博基尼";
System.out.println(car2.name);
car2.Introduce();
//两个对象,三个引用
Car car3 = car2;
car3.Introduce();
}
}
class Car
{
//声明成员变量时,可以给一个初始值
String name = "法拉利";//名字
String color = "红色";//颜色
int number = 8;//轮胎的数量
int paiQi = 1;//排气量
public void XingShi()
{
int num;//局部变量
System.out.println("可以行使");
}
public void store()
{
System.out.println("可以存放东西");
}
//介绍自己的方法
public void Introduce()
{
System.out.println(name+"----"+color);
}
}
//思考两个对象在内存中的表现
class Person1
{
//成员变量
String name;
String hobby;
int age;
double hight;
//成员方法
public void name()
{
System.out.println(name);
}
public void hobby()
{
System.out.println(hobby);
}