标签:name code 相同 int void 形参 覆盖 语言 public
在下面代码中。成员变量与setName()方法中的形式参数的名称相同,都为name,那么该如何在类中区分使用的是哪一个比阿娘呢?在Java语言中规定使用this关键字来代表本类对象的引用,this关键字被隐士的用于引用对象的成员变量和方法,如在上述代码中,this.name指的name是成员变量,第二个name是形参。
1 private void setName(String name){ 2 this.name = name; 3 }
1. 那么,在java中this和对象都可以调用成员变量或成员方法,二者之间有什么区别呢?
区别:this引用的就是本类的一个对象,在局部变量或方法参数覆盖了成员变量时,就要添加this关键字说明引用的是类成员还是局部变量或方法参数;如果this关键字直接写成name = name;成员变量的值并没有改变,因为参数name在方法的作用域中覆盖了成员了变量name。
2.this关键字还可以调用类中的构造方法,如下代码
1 public class AnyThing { 2 public AnyThing(){ 3 this(""); //使用this调用有参构造方法 4 System.out.println("无参构造方法"); 5 } 6 public AnyThing(String name){ 7 System.out.println("有参构造方法"); 8 } 9 10 }
在上例定义了两个构造方法,在无参构造方法中使用this关键字调用有参的构造方法,但使用这种方法需要注意的是只可以在无参构造方法中的第一句使用。
标签:name code 相同 int void 形参 覆盖 语言 public
原文地址:http://www.cnblogs.com/xyzyj/p/6125328.html