this
表示的是当前对象本身this
代表当前对象的一个引用。当构造方法中的参数名跟类的成员变量名称一样的时候,可以使用this代表当前对象
(*******有了this之后,可以将构造方法的参数跟成员变量保持一致*******)
public class ThisDemo1 {
String name;
int age;
//构造方法中使用this
public ThisDemo1(String name,int age){
this.name =name;
this.age = age;
}
public static void main(String[] args) {
ThisDemo1 td = new ThisDemo1("lisi",23);
System.out.println(td.name);
System.out.println(td.age);
}
}
当构造方法中需要调用其他的构造方法时,可以使用this()
.
public class ThisDemo {
String name;
int age;
public ThisDemo(){
}
public ThisDemo(String name){
System.out.println("one");
this.name =name;
}
public ThisDemo(String name,int age){
this(name);//this调用其他构造方法,必须位于方法体的第一行
System.out.println("two");
this.name =name;
this.age = age;
}
public static void main(String[] args) {
ThisDemo td = new ThisDemo("lisi",23);
System.out.println(td.name);
System.out.println(td.age);
}
}
当多个普通方法之间需要调用的时候,可以使用this来进行调用,指的是当前对象的其他方法
public class ThisDemo1 {
String name;
int age;
//构造方法中使用this
public ThisDemo1(String name,int age){
this.name =name;
this.age = age;
}
public void test1(){
System.out.println("test1");
}
//普通方法中使用this
public void test2(){
System.out.println("test2");
this.test1();
}
public static void main(String[] args) {
ThisDemo1 td = new ThisDemo1("lisi",23);
System.out.println(td.name);
System.out.println(td.age);
td.test2();
}
}
当方法中的参数名称跟成员变量保持一致的时候,使用this.变量名称
表示的是对象的值,而使用变量名称表示形参列表中的值
public class ThisDemo1 {
String name;
int age;
//构造方法中使用this
public ThisDemo1(String name,int age){
this.name =name;
this.age = age;
}
public void test1(){
System.out.println("test1");
}
//普通方法中使用this
public void test2(String name){
System.out.println("test2");
this.test1();
//打印参数里面的属性
System.out.println(name);
//打印当前对象的属性
System.out.println(this.name);
}
public static void main(String[] args) {
ThisDemo1 td = new ThisDemo1("lisi",23);
System.out.println(td.name);
System.out.println(td.age);
td.test2("huahua");
}
}
注意:this
不能用于static
方法
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。