· this关键字核心概念:当前对象。
范例:调用构造方法
class Emp {
private int empno;
private String ename;
private double sal;
private String dept;
public Emp() {
this(0, "无名氏", 0.0, "未定");
}
public Emp(int empno) {
this(empno, "临时工", 1200.0, "后勤部");
}
public Emp(int empno, String ename) {
this(empno, ename, 2000.0, "技术部");
}
public Emp(int empno, String ename, double sal, String dept) {
this.empno = empno;
this.ename = ename;
this.sal = sal;
this.dept = dept;
}
@Override
public String toString() {
return "雇员编号:" + this.empno + ",姓名:" + this.ename + ",薪水:" + this.sal + ",部门:" + this.dept;
}
}
public class Demo {
public static void main(String[] args) {
Emp ea = new Emp();
Emp eb = new Emp(666);
Emp ec = new Emp(777, "Jack");
Emp ed = new Emp(888, "John", 5000.0, "财务部");
System.out.println(ea);
System.out.println(eb);
System.out.println(ec);
System.out.println(ed);
}
}
===============分割线================
范例:表示当前对象
class Book {
public void print() {
// 1.哪个对象调用了print()方法,this就自动与此对象指向同一个内存地址
// 2.this就是当前调用方法的对象
System.out.println("this=" + this);
}
}
public class Demo {
public static void main(String[] args) {
Book ba = new Book();
System.out.println("booka=" + ba);
ba.print();
System.out.println("-----------------");
Book bb = new Book();
System.out.println("bookb=" + bb);
bb.print();
}
}
===============分割线================
范例:思考题
class A {
private B b;
public A() {
this.b = new B(this);
this.b.get();
}
public void print() {
System.out.println("Hello World!");
}
}
class B {
private A a;
public B(A a) {
this.a = a;
}
public void get() {
this.a.print();
}
}
public class Demo {
public static void main(String[] args) {
A temp = new A();
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/66d9f1691aa06bf502a1f6800b9be2d8.png)