Q:什么是this?
A:java虚拟机会给每个对象分配this,代表当前对象。
使用this解决变量名问题。
import java.util.Scanner;
public class test1 {
public static void main(String args[]) {
Dog d1 = new Dog("dazhuang",1);
d1.info();
}
}
class Dog{
String name;
int age;
public Dog(String name, int age){
this.name = name;
this.age = age;
}
public void info(){
System.out.println(name+age);
}
}
整体感觉和c中函数里的指针类似,指向对象的感觉,通过它可以访问对象也可以直接用对象。
this的使用细节:
1. this关键字可以用来访问本类的属性,方法,构造器。
2.this用于区分当前类的属性和局部变量。
3.访问成员方法的语法:this.方法名(参数列表)
4.访问构造器语法:this(参数列表);只能在构造器中使用。
import java.util.Scanner;
public class test1 {
public static void main(String args[]) {
T t2 = new T();
}
}
class T{
public T(){
//tips: 对this的调用必须是构造器中的第一个语句
this("jack",100); //通过this访问T(String name,int age)构造器
System.out.println("T()");
}
public T(String name,int age){
System.out.println("T(String name,String age)");
}
}
5.this不能再类定义的外部使用,只能在类的定义的方法中使用。
注意:
不写this时候name按照就近原则输出,不能精准定位到对象,而ehis可以准确定位到对象(在主函数中创建的对象)