java基础之this关键字
This 关键字
This关键字是java里面比较复杂的一个关键字。因为this的核心概念是表示当前对象。但是在实际开发中当前对象难以确定。在java里面,利用this关键字能够实现类的调用、类方法的调用、以及表示当前对象。
构造方法中的参数是为了类中属性的初始化,为了代码规范性,构造方法中的参数应和类中的属性保持一致。使用this关键字调用类中方法。
2.1 本类中调用普通方法
在本类中调用普通方法时,this关键字可用可不用,但是为了代码的规范性,在本类中调用普通方法时,必须使用this关键字。
2.2 构造方法之间的this调用
在一个类中,除了普通方法还有构造方法,构造方法之间进行相互调用,采用“this(参数,参数)”。
程序:
Class Book{
Private string title;
Private string price;
Public Book(){
}
Public Book(String title){
this();
this.title = title;
}
Public Book(String title,String price){
this(title);
this.price = price;
}
Public string getInfo(){
return “书名”+this.title+”、价格”+this.price;
}
}
Public class testdemo{
Public static void main(String args[]){
Book book = new Book(“java”,89);
System.out.println(book.getInfo());
}
}
在本程序中,Book类首先实化了含有两个参数的构造方法。在含有两个参数的构造
方法中通过this(title)调用含有一个参数的构造方法。最终调用无参构造方法。降低了程序的冗余。
注意:
- 使用this()调用构造方法,其必须放在构造方法的首行。
- 在进行构造方法的调用时,一定要保留调用的出口。即不能循环调用。
- 在实例化的过程中,谁调用了构造方法,this就表示调用该构造方法的对象。
- 思考题:
Class A{
Private B b;
Public A(){
//第二步:this = temp ,调用类B中的构造方法,
This.b = new B(this);
//第四步:调用B中的get方法。
This.b.get();
}
Public void print(){
System.out.println(“hello”);
}
Class B{
Private A a;
// 第三步: this.a = temp
Public B(A a ){
this.a = a ;
}
Public void get(){
//第六步:调用A类中的方法.
this.a.print()
}
}
Public class testdemo{
Public static void main(String args[]){
//第一步:实例化temp,调用类A中的无参构造方法
}
}