this是Java的一个关键字,表示某个对象,this可以出现在实例方法和构造方法中,但不可出现在类方法中
实例方法可以操作类的成员变量,当实例成员变量在实例方法中出现时,默认格式
是:this.成员变量;
当static成员变量在实例方法中出现时,默认格式是:类名.成员变量;
当一个对象调用方法时成员变,方法中的实例成员变量就是指分配给该对象的实例成
员变量,而static变量则和其他对象共享,因此,通常情况下,可以省略实例成员变
量名字前面的"this"以及static变量前面的"类名"
但当实例成员变量的名字和局部变量的名字相同时,成员变量前面的"this"或"类名"
就不可以省略
注:this不能出现在类方法中,这是因为,类方法可以通过类名直接调用,这时可能还
没有任何对象诞生
this关键字的作用
1、强调本类中的方法;
2、表示类中的属性;
3、可以使用this调用本类中的构造方法;
4、this表示当前对象
表示类中的属性:
class Person {
String name;
int age;
public Person(String name,int age) { //通过构造方法赋值
this.name = name; //为类中的name属性赋值
this.age =age; //为类中的age属性赋值
}
public String getInfo() { //取得信息的方法
return “姓名:” + name + " 年龄:" + age
}
}
public class ThisDemo {
public static void main(String[] args) {
Person per1 = new Person(“张三”,33); //调用构造实例化对象
System.out.println(per1.getInfo()); //取得信息
}
}
this调用本类中的构造方法:
public class Student{ //定义一个类,类的名字为student。
public Student(){ //定义一个方法,名字与类相同故为构造方法
this(“luobo”)
}
public Student(String name){ //定义一个带形式参数的构造方法
}
}
实例:
public class Demo18{
public static void main(String[] args){
Test test = new Test();
test.speek(3);
}
}
class Test{
//定义一个成员变量
double a = 4;
//局部变量
void speek(double a){
System.out.println(“a=”+this.a);//如果重名时优先选择局部变量
}
}