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


    成员变量与局部变量区别

      声明位置不同

        成员变量:在类中声明

        局部变量:在方法中声明,其中形参也属于局部变量

      初始值不同

        成员变量:在没有赋值时,是有默认值的,数据类型不同,默认值不同

        局部变量:没有默认值,也就是说必须先声明,然后再赋值,最后才可以使用

      

      在同一个类中,成员变量的名字可以与局部变量的名字同名,但是局部变量名字优先,也就是就近优先,如果非要访问成员变量则必须添加this.

      this代表当前这个对象,也就是 当前谁调用这个方法则这个对象就是谁  看图:    如图,this代表的就是c

    局部变量与成员变量在内存中是如何显示的:

    code:

     1 /*
     2 编写车类,属性:颜色、品牌、价格
     3 编写车的测试类,创建车的对象
     4 */
     5 class Car{
     6     //属性也叫做成员变量
     7     String color;
     8     String brand;
     9     double price;
    10     
    11     //方法
    12     public void print(String name){        //name是形参
    13         int i;    //i就是局部变量
    14 
    15         for(int j=1;j<=5;j++){        //j也属于局部变量
    16         
    17         }
    18     }
    19     public void show(){
    20         int a;        //a是局部变量
    21         //System.out.println("a = " + a);    //出现编译错误,原因:局部变量必须先声明,再赋值最后才可以使用
    22     
    23         a = 123;
    24         System.out.println("a = " + a);
    25         System.out.println("price = " + price);        //0
    26     }
    27     public void print2(){
    28         /*总结:在同一个类中,成员变量的名字可以与局部变量的名字同名
    29                     但是局部变量名字优先,也就是就近优先
    30                     如果非要访问成员变量则必须添加this.
    31         */
    32         String color = "灰色";    //color是局部变量
    33         System.out.println("输出局部变量color的值:"+ color);
    34         System.out.println("输出成员变量color的值:"+ this.color);    //this代表当前这个对象,也就是 当前谁调用这个方法则这个对象就是谁
    35     }
    36 }
    37 //编写车的测试类
    38 class CarTest{
    39     public static void main(String[ ]args){
    40         //实例化车
    41         Car c = new Car();
    42         //c.show( );
    43         c.print2();
    44 
    45         System.out.println();
    46         Car c2 = new Car();
    47         c2.color = "白色";
    48         c2.print2();
    49     }
    50 }
  • 相关阅读:
    升级CentOS内核
    npm、component、spm、bower的区别
    Bower的使用
    Mac安装Bower
    Bower是什么?
    Mac下安装与配置Go语言开发环境
    jenkins升级为2.134
    nexus实现从windows迁移至Linux平台
    Jenkins构建完成后实现自动将war包部署到指定服务器
    使用jenkins构建一个maven项目
  • 原文地址:https://www.cnblogs.com/penphy/p/10911516.html
Copyright © 2020-2023  润新知