今天的java学习中,学到了this关键字,现在做个小小的总结。
this关键字用于类中,当程序中新建或调用相应的类的对象或对象的方法时,在执行到this关键字时,this就代表那个对象。。。(好吧,有点说不清了)
还是用代码解释一下吧。。
//当成员名和函数形参变量名(局部变量名)一样时(有歧义时)才用this,不同时不需要用this,不会引发歧义即可
class Person
{
private name;
Person(String name)
{
this.name=name; //如主函数所示,新建对象p时,this.name可看成p.name
}
public void getName()
{
System.out.println(this.name)//此处可直接用name,因为没有重名形参,此处name是this.name的简写
this.show();//成员方法和成员变量效果一摸一样,此处也可用show()
//如主函数所示,调用对象p时,this.name等价于p.name this.show()等价于p.show()
}
public void show()
{
System.out.println(this.name)//此处同理可用name
}
}
class Demo
{
public static void main(String[] args)
{
Person p=new Person("lisi");//新建一个对象p
p.getName();//调用对象p
}
}
如果类中不会出现同名现象,一般情况下不要用this关键字。。
===========================================================================================================
补充:
1,在类中定义的方法中使用了本类对象,且对象为调用该方法的对象时,用this关键字
举例如下:
class Person
{
private int name;
Person(int age)
{
this.age=age;
}
public boolean cmp(Person p)//参数类型为Person
{
return this.age==p.age;//this是指调用该方法的对象
}
}
2,this语句
举例如下:
//this语句,格式:this();用于构造函数间相互调用(只能置于构造函数第一行)
class Person
{
private String name;
private int age;
Person(String name)
{
this.name=name;
}
Person(String name,int age)
{
this(name);//相当于调用同类中的另一个构造函数
this.age=age;
}
}