调用本类属性
this明确是一个灵活的关键字,他不会明确的表示出任何一个固定的概念
利用this调用本类属性
类之中有许多成员,在大部分情况下,类里面是直接进行成员的调用,但是很多时候为了能够更加清楚地描述出调用的是本类属性,所以调用属性时,可以采用this.属性
的方式
通过代码观察其意义:
class NewPerson{
String name;
int age;
public NewPerson(String name,int age){
this.name = name;
this.age = age;
}
public String getInfo(){
return "姓名:"+this.name+",年龄:"+this.age;
}
}
class ThisTest{
public static void main(String[] args){
NewPerson per = new NewPerson("张三",15);
System.out.println(per.getInfo());
}
}
此代码在构造方法上的参数很明确是要做什么,就是为了name和age属性赋值,当参数和属性名称相同的时候,就会出现混淆的概念,那么就需要用户自己利用this.属性
手工的调用方法中的属性
调用本类方法
在一个类中方法实际上存在有两类:普通方法、构造方法,而this调用本类方法的语法是不同的
调用本类的其他方法:this.方法()
在一个类的不同方法之间可以通过this.方法()
调用,示例代码如下:
class NewPerson{
String name;
int age;
public NewPerson(String name,int age){
this.name = name;
this.age = age;
this.paint();
}
public void paint(){
System.out.println("姓名:"+this.name+",年龄:"+this.age);
}
}
调用本类其它构造方法:this()
一个类中是可以存在有构造方法的,而且构造方法可以重载,并且构造方法只在实例化对象中调用一次
因此我们举例:一个Preson类中要求提供有三个构造方法,但是不管调用哪个构造方法都会执行一句“新的Person类对象实例化了”的输出,使用this();
的代码如下:
class NewPerson{
String name;
int age;
public NewPerson(){
System.out.println("新的Person类对象实例化了");
}
public NewPerson(String name){
this();//使用无参构造方法
this.name = name;
}
public NewPerson(String name,int age){
this(name);//使用单参构造方法
this.age = age;
}
public void paintf(){
System.out.println("姓名:"+this.name+",年龄:"+this.age);
}
}
使用this()"
方法可以进行简化代码,但是也是有限制的: