public class Thes{
void aPrint(){
System.out.println("a");
bPrint();
this.bPrint();}void bPrint(){
System.out.println("b");}public static void main(String[] args){
Thes th=new Thes();
th.aPrint();
}
}程序运行结果:
a
b
b
请问一下,这里的this起到什么作用?用与不用区别在哪里?

解决方案 »

  1.   

    在这里bPrint();和this.bPrint();是一样的
    this.bPrint()调用本类对象的bPrint方法
      

  2.   

    1、在一个类中,this可以表示该类的当前实例;例如: 
    public class Leaf { 
    private int i = 0; 
    Leaf increment() { 
    i++; 
    return this; 

    void print() { 
    System.out.println("i = " + i); 

    public static void main(String[] args) { 
    Leaf x = new Leaf(); 
    x.increment().increment().increment().print(); 

    } ///:~ 
    2、若为一个类写了多个构造器,那么经常都需要在一个构造器里调用另一个构造器,以避免写重复的代码。这时可以使用this,例如: 
    //: Flower.java 
    // Calling constructors with "this" public class Flower { 
    private int petalCount = 0; 
    private String s = new String("null"); 
    Flower(int petals) { 
    petalCount = petals; 
    System.out.println( 
    "Constructor w/ int arg only, petalCount= " 
    + petalCount); 

    Flower(String ss) { 
    System.out.println( 
    "Constructor w/ String arg only, s=" + ss); 
    s = ss; 

    Flower(String s, int petals) { 
    this(petals); 
    //! this(s); // Can''t call two! 
    this.s = s; // Another use of "this" 
    System.out.println("String & int args"); 

    Flower() { 
    this("hi", 47); 
    System.out.println( 
    "default constructor (no args)"); 

    void print() { 
    //! this(11); // Not inside non-constructor! 
    System.out.println( 
    "petalCount = " + petalCount + " s = "+ s); 

    public static void main(String[] args) { 
    Flower x = new Flower(); 
    x.print(); 

    } ///:~ 而需要注意的是:在一个类A的内部类B中使用this它表示的并非是A.B的当前实例,而是A的当前实例;
      

  3.   

    楼上的,你也在看Thinking  in Java,呵呵?