this关键字知识总结
学习资源:B站韩顺平老师Java入门教学
代码示例1
public class This01 {
public static void main(String[] args) {
Dog d1 = new Dog(\"小黄\", 3);
d1.info();
System.out.println(\"对象d1的hashcode=:\" + d1.hashCode());
System.out.println(\"---------------\");
Dog d2 = new Dog(\"小花\", 2);
d2.info();
System.out.println(\"对象d2的hashcode=:\" + d2.hashCode());
}
}
class Dog {
int age;
String name;
// 根据变量的作用域原则,方法中的name与age实际指的是局部变量而不是成员变量
// public Dog(String name, int age) {
// name = name;
// age = age;
// }
// java虚拟机会给每个对象分配this,代表当前对象
public Dog(String name, int age) {
this.name = name;
this.age = age;
System.out.println(\"构造器中:this.hashcode=:\" + this.hashCode());
}
public void info() {
System.out.println(\"狗狗名字叫:\" + this.name + \"\\n年龄:\" + this.age);
System.out.println(\"成员方法中:this.hashcode=:\" + this.hashCode());
}
}
代码示例2
public class ThisDetail {
public static void main(String[] args) {
T t1 = new T();
t1.f2();
System.out.println(\"---------------\");
T t2 = new T(10);
System.out.println(\"---------------\");
T t3 = new T(\"小明\", 10);
System.out.println(t1.name + \"==\" + t1.age);
System.out.println(t2.name + \"==\" + t2.age);
System.out.println(t3.name + \"==\" + t3.age);
}
}
class T {
int age;
String name;
// 细节1:访问成员方法的语法:this.方法名(参数列表);
public void f1() {
System.out.println(\"f1()方法..\");
}
public void f2() {
System.out.println(\"f2()方法..\");
// 在f2()中调用f1()
// 第一种方法
f1();
// 第二种方法
this.f1();
}
// 细节2:调用构造器语法:this(参数列表); 只能在构造器中使用,只能放在构造器的首句
T() {
this.name = \"小李\";
this.age = 18;
System.out.println(\"调用构造器1\");
}
T(int age) {
this();
this.age = age;
System.out.println(\"调用构造器2\");
}
T(String name, int age) {
this(age);
this.name = name;
System.out.println(\"调用构造器3\");
}
}
注意事项与使用细节
- this关键字可以用来访问本类的属性、方法、构造器;
- this用于区分当前类的属性和局部变量;
- 访问成员方法的语法:this.方法名(参数列表);
- 访问构造器语法:this(参数列表); 注意:只能在构造器中使用,且需要为构造器中的首行;
- this不能在类定义的外部使用,只能在类定义的方法中使用
来源:https://www.cnblogs.com/zhanghuaze/p/16506098.html
本站部分图文来源于网络,如有侵权请联系删除。