成员变量与局部变量的区别

来源:互联网 发布:全国复杂网络大会 编辑:程序博客网 时间:2024/05/21 17:53
package com.lanou3g.tentity;/** * 需求: * 创建一个类 Car类 * 有名字 颜色 轮胎数量 排气量  *  可以行使 可以震一下 *  可以存放物品 * 增加成员方法 介绍自己的方法 *  *成员变量 和 局部变量 */public class CarDemo {  public static void fun1(int num) {       System.out.println(num);       num=10;  }  //参数是引用数据类型时 如何传参  //你要什么? 我就给你什么  public static void fun2(Car car) {      car.name="吉利";      car.color="粉红色";      car.sayHi();  }    public static void main(String[] args) {        int num=123;            fun1(num);        System.out.println(num);
    //初始化 创建 一个car    Car car = new Car();    //car的地址传进去         fun2(car);    System.out.println(car);    //创建一个对象(初始化一个对象)    Car car1=new Car();//    car1.name="布加迪";    car1.run(0);    car1.shock();    car1.sayHi();    System.out.println(car1.name);    //思考:两个对象 在内存中的表现     Car car2=new Car();    car2.name="兰博基尼";    car2.color="蓝色";    car2.sayHi();    //两个对象三个引用    Car car3=car2;    car3.sayHi();}

}
/**
* 成员变量与局部变量 的区别
* 局部变量:方法中 或者 方法的声明中
*
* 成员变量:在类中方法外
*
* 位置不同
* 局部变量:方法中 或者 方法的声明中
* 成员变量:在类中方法外
*
* 初始化值不同
* 局部变量:必须给定初始值 才能进行使用
*
* 成员变量:只要你创建了对象 就会有默认的初始值
*
* 内存存在的位置不同
* 局部变量:存储在栈内存中
* 成员变量:存储在堆内存中
*
* 生命周期不同(出生 — 死亡)(对变量的访问时 要考虑一下生命周期是否可以访问)
*
* 局部变量:随着方法的入栈而出生 随着方法的出栈而死亡
*
* 成员变量:随着对象的出生而出生 随着对象死亡而死亡
*/
class Car{
//声明成员变量时可以给一个初值

     String name="奥迪"; //车名字     String color="红色";//车颜色     int sum=4;     //轮胎数量     int ev=1;   //排气量     //int a:方法的声明中     //int num:方法中   public void run(int a) {       int num; //局部变量        System.out.println("可以使用");   }   public void shock () {       System.out.println("可以震一下");   }   //介绍自己的方法   public void sayHi() {       System.out.println(name + color + sum + ev);   }

}
内存状态图
这里写图片描述

原创粉丝点击