class A{ public String str="test"; public void setStr(){ this.str="bbb"; } }; A a; a.setStr(); // A a就表示生成A的一个对像,setStr()中的this就代表的是a这个对像本身,就相当于是a这个对像的别名, //与a指向的是同一个内容
public class A { public void test() { this.print(); } private void print() { System.out.println("abc"); } public static void main(String[] args) { A a = new A(); a.test(); // 那句话在我看来的理解就是: 在此时, test方法里面的this关键字就表示的是代表类A的对象变量a. } }
this指的就是当前对象(即代表它自身的对象变量),可以代表当前方法或者是数据成员。 private int a=2;
public void fun(){ this.a=3;//这里的this变量就获得一个代表它自身的对象变量,相当于获得变量a,然后重赋值 System.out.println(a); }
public class A { String name; public void setName(String name) { this.name=name; } 这里有一个类A,它有一个变量name和一个方法setName()。 方法的作用是给变量赋值,它也有一个参数name。 显然,如果不使用this关键字的话,方法中的代码就变成了“name=name“。而明显这样的赋值是有问题的。 使用关键字this后this.name表示类的变量,等号右边的name表示方法的参数,这样代码就很清晰了。 当让,如果你能保证不会有重名的现象发生,也可以不用this关键字。不过实际开发中很难保证,而且以后你会发现使用重名的变量,会有很多方便,代码也更易读,也不用为变量不知起什么名而发愁,所以this关键字还是必不可少的。
public String str="test";
public void setStr(){
this.str="bbb";
}
};
A a;
a.setStr();
// A a就表示生成A的一个对像,setStr()中的this就代表的是a这个对像本身,就相当于是a这个对像的别名,
//与a指向的是同一个内容
public class A {
public void test() {
this.print();
}
private void print() {
System.out.println("abc");
}
public static void main(String[] args) {
A a = new A();
a.test(); // 那句话在我看来的理解就是: 在此时, test方法里面的this关键字就表示的是代表类A的对象变量a.
}
}
private int a=2;
public void fun(){
this.a=3;//这里的this变量就获得一个代表它自身的对象变量,相当于获得变量a,然后重赋值
System.out.println(a);
}
String name;
public void setName(String name) {
this.name=name;
}
这里有一个类A,它有一个变量name和一个方法setName()。
方法的作用是给变量赋值,它也有一个参数name。
显然,如果不使用this关键字的话,方法中的代码就变成了“name=name“。而明显这样的赋值是有问题的。
使用关键字this后this.name表示类的变量,等号右边的name表示方法的参数,这样代码就很清晰了。
当让,如果你能保证不会有重名的现象发生,也可以不用this关键字。不过实际开发中很难保证,而且以后你会发现使用重名的变量,会有很多方便,代码也更易读,也不用为变量不知起什么名而发愁,所以this关键字还是必不可少的。
的确,this指的是类的方法与属性。当有局部变量与类的变量重复时,可用this区分。我们在学习jsp里提到了,不过真的谢谢大家给我帮助。