在java中 ,this可以完成三件事情 ,调用本类属性,调用本类方法,调用本类对象。今后访问类的属性,都要加上this 。
1:this.属性表示的是本类属性 ,即使方法参数与变量名重名也可以明确定位。
2:this.方法()可以调用本类的普通方法 ,用this()调用构造方法 。需要注意的是,使用this()调用构造方法的代码只能放在构造方法的第一行,并且在构造方法相互调用时,保留调用的出口。
3:this在对象中直接调用当前对象 。
class Book {
private String title;
private double price;
public Book() {
System.out.println("老铁点点关注");
}
public Book(String title) {
this(); //此处this()调用无参数的构造方法
this.title =title;
}
public Book(String title,double price) {
this(title); //此处this()调用一个参数的构造方法
this.price =price; //this.属性表示的是本类属性 ,即使方法参数与变量名重名也可以明确定位
}
public void setTitle(String title) {
this.title =title;
}
public void setPrice(double price) {
this.price =price;
}
public String getTitle() {
return this.title;
}
public double getPrice() {
return this.price;
}
public void pri() {
System.out.println("奥利给");
}
public String getInfo() {
this.pri(); //此处调用本类方法;
return "图书的名称是:"+this.title+" 图书的价格是:"+this.price+"
"+this; //this直接调用当前对象
}
}
public class TsetDemo {
public static void main(String[] args) {
Book bk1 =new Book("java开发大全",99.89);
System.out.println(bk1.getInfo());
System.out.println(bk1);
System.out.println("--------------------------");
Book bk2 =new Book();
System.out.println(bk2.getInfo());
System.out.println(bk2);
}
}
程序执行结果:
老铁点点关注
奥利给
图书的名称是:java开发大全 图书的价格是:99.89
Book@15db9742
Book@15db9742
--------------------------
老铁点点关注
奥利给
图书的名称是:null 图书的价格是:0.0
Book@6d06d69c
Book@6d06d69c