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起到什么作用?用与不用区别在哪里?
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起到什么作用?用与不用区别在哪里?
this.bPrint()调用本类对象的bPrint方法
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的当前实例;