• 构造函数中加this和不加this的区别


    class Cat                    

    {

    int a=5;

    //构造函数

     public Cat(int a){

            a = a;

            }  

    }

    Cat  c=new Cat(4);

        这种情况下其实是把c对象的变量a的值都是初始化成了5,并没有像我们想的一样初始化为4。

        因为这个时候构造函数里面的a他不知道自己是这个类的对象a还是构造函数的参数a,但是因为类的对象a的作用域比较大,所以这个时候实质上是类的变量a把自己的值给了自己,也就是c把自己a这个变量初始化成了5,参数在调用构造函数的时候传了过来,但是没什么卵用··········

    class Cat

    {

    int a=5;

    //构造函数

       public Cat(int b){

            a = b;

            }  

    }

    Cat  c=new Cat(4);

        这种情况下c对象的变量a的值就是我们想要的4了。

        因为构造函数中参数名是b,类的变量名是a,这时c对象在调用构造函数初始化自己的时候,构造函数就能够很好地区分哪个是参数,哪个是变量,这个时候构造函数拿到传过来的参数4就有卵用了,因为这时候就知道把参数值赋值给变量了,c对象中a变量的值就成了4

    class Cat

    {

    int a=5;

    //构造函数

       public Cat(int a){

            this.a = a;

            }  

    }

    Cat  c=new Cat(4);

        这种情况下c对象的变量a的值也是我们想要的4。

        为啥子嘞,是这个样子滴。其实原理还是和上面那个一样,就是要把参数和类的变量区分开,这样才可以进行正确的赋值。不然长的像个双胞胎一样,连你妈也不认识谁是谁,你叫我们可爱的函数怎么去区分嘛。

    理解this的同学相信我不说你们也是懂得;不理解this用法的同学暂时可以这样理解,本来是两个一样的东西,可爱的函数分不清,但是上面贴了个标签说是我的,这样函数就可以分清了,这样就可以正确的赋值了。

    注:关于this的情况就不在这里说了,请到哥的其他文章里面找找~~

  • 相关阅读:
    Android滑动菜单框架完全解析,教你如何一分钟实现滑动菜单特效
    Android滑动菜单特效实现,仿人人客户端侧滑效果,史上最简单的侧滑实现
    Android桌面悬浮窗效果实现,仿360手机卫士悬浮窗效果
    各产品编译及串口烧录
    C 语言代码规范
    烧录
    共享目录
    openwrt Makefile
    netfilter 参考pywj的《netfilter + nf_conntrack + iptables》
    iptables问题
  • 原文地址:https://www.cnblogs.com/Bingfengwangzuo/p/5674212.html
Copyright © 2020-2023  润新知