java----this的用法

首先,我的技术不是很好,以下内容只是我的理解,我不能保证百分百正确。。。。最近有些刚刚学java的人问我一些Java基础的问题,有些人问的问题是一样的,那就想着就不如写在博客上,直接看就可以,就不用回答辣么多遍了。

(第一次写博客啊~)

 

这里说的是this

this是什么呢,标准说法是指类本身,然而,新手连对象、方法、类是啥都理解的糊里糊涂。

这里就不说这些的具体区别了

首先,来一段代码

public class aa(){

         int cc;

         public void bb(){

                   this.cc++;

         }

}

在这代码里面的this就是aa,很清楚明了,所以this.cc就是指定义的cc;然后this.bb()就是指bb()这个方法。然而,新手又跑出个疑问,this.cc和cc竟然一样,那干嘛用this。

通过百度,我下面找到了这段话:

说明在什么情况下需要用到this:

        第一、通过this调用另一个构造方法,用法是this(参数列表),这个仅仅在类的构造方法中,别的地方不能这么用。

        第二、函数参数或者函数中的局部变量和成员变量同名的情况下,成员变量被屏蔽,此时要访问成员变量则需要用“this.成员变量名”的方式来引用成员变量。当然,在没有同名的情况下,可以直接用成员变量的名字,而不用this,用了也不为错,呵呵。

        第三、在函数中,需要引用该函所属类的当前对象时候,直接用this。

        其实这些用法总结都是从对“this是指向对象本身的一个指针”这句话的更深入的理解而来的,死记不然容易忘记而且容易搞错,要理解!

来自http://mougaidong-163-com.iteye.com/blog/994934这里(引用我有指明来源,没有偷偷盗用哦)

 

好吧,全新的新手看不明白这段话,我就解释一遍。

第一,       通过this调用另一个构造方法,什么是构造方法呢,我们在定义一个写好的类的时候

如:

public class aa(){

         int cc;

         public void bb(){

                   this.cc++;

         }

}

使用这个写好这个类,我们是这样的:aa a = new aa();

其实以上代码是有个隐藏的方法

public class aa(){

         public aa(){

         }

         int cc;

         public void bb(){

                   this.cc++;

         }

}

就是这个方法名字和类的名字一样,其实每个写好的类都有这个方法,默认存在的,这个方法就是构造方法。构造方法可以有多个的,可是入参数量或者类型一定要不同。

如:

public class aa(){

         public aa(){

         }

         public aa(int i){

                    System.out.println(i);

         }

         int cc;

         public void bb(){

                   this.cc++;

         }

}

上面定义了两个构造方法,一个是aa(),一个是aa(int i)

那么我们new 这个方法的时候可以这样:aaa = new aa();或者aa a = new aa(123);

现在明白构造方法时什么了吧。还是不明白再找我吧。。。

那么,第一、通过this调用另一个构造方法,用法是this(参数列表),这个仅仅在类的构造方法中,别的地方不能这么用。这句话就好理解了,就是在写构造方法时可以这样

public aa(){

         this (123);

}

public aa(int i){

          System.out.println(i);

}

里面的this(123)其实就是aa(123),this(参数列表) 仅在在构造函数里用,就是this()或this(123)只能在构造函数用,在其他方法函数不能用,其他方法函数能用this或this.bb()或this.cc

 

第二、函数参数或者函数中的局部变量和成员变量同名的情况下,成员变量被屏蔽,此时要访问成员变量则需要用“this.成员变量名”的方式来引用成员变量。当然,在没有同名的情况下,可以直接用成员变量的名字,而不用this。

函数参数就是使用该函数的时候输入的参数

如:

public class aa(){

         int cc;

         public void bb(int cc){

                   int dd;

                   dd =cc;

                   this.cc=cc;

         }

}

 

第三、在函数中,需要引用该函所属类的当前对象时候,直接用this。

这句的意思就是如果要用到现在所处的方法的所属类,直接用this,相当于直接说明了this的意思,就是指当前类。

理解以上三点,对于this就有些明白了吧,具体的还是需要各种打代码熟悉才会更加了解。

理论再强还不如去实践。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值