【java学习】this关键字(27)

文章目录

  • 1. this是什么?
  • 2. this的作用


1. this是什么?

  1. 在 java 中,this关键字比较难理解,它的作用和其词义很接近。
    ①它在方法内部使用,即这个方法所属对象的引用;
    ②它在构造器内部使用,表示该构造器正在初始化的对象。

  2. this 表示当前对象,可以调用类的属性、方法和构造器

  3. 什么时候使用this关键字呢?
    当在方法内需要用到调用该方法的对象时,就用this

2. this的作用

先举例说明:

  1. 案例一
    错误写法:
package day06;

public class Person7 {
	
	public Person7(int age, String name) {
		age = age;     //像这种情况编译器分不清哪个age是形参,哪个age是类的成员变量
		name = name;   //同上
	}
	
	int age;
	String name;

}

正确写法:

package day06;

public class Person7 {
	
	public Person7(int age, String name) {
		this.age = age;    //通过this关键字表明this.age是Person7的成员变量,age是构造器的形参
		this.name = name;  //同上
	}
	
	int age;
	String name;

}
  1. 案例二
    更复杂的用法:
package day06;

public class Person7 {
	
	public Person7(int age, String name) {
		this.age = age;
		this.name = name;
	}
	
	int age;
	String name;

	public void setName(String name) {
		this.name = name;
	}
	
	public void setName1(String name) {
		this.setName(name);   //name是setName1里传递过来的形参,然后传递给setName的形参
		// this指类Person7(this.setName() = Person7.setName())
	}
	
	public void showInfo() {
		System.out.println("姓名:" + this.name);
		System.out.println("年龄:" + this.age);
	}
}
  1. 案例三
    this 可以作为一个类中,构造器相互调用的特殊格式
    代码如下:
package day06;

public class Person7 {
	
	public Person7() {
		
	}
	
	public Person7(int age) {
		this.age = age;
	}
	
	public Person7(String name) {
		this();   // 等同于调用 无参构造器:public Person7()
		this.name = name;
	}
	
	public Person7(int age, String name) {
		this(1);   // 等同于调用 有参构造器:public Person7(int age)
		this.age = age;
		this.name = name;
	}
	
	int age;
	String name;

	public void setName(String name) {
		this.name = name;
	}
	
	public void setName1(String name) {
		this.setName(name);
	}
	
	public void showInfo() {
		System.out.println("姓名:" + this.name);
		System.out.println("年龄:" + this.age);
	}
}

总结:
1.当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该变量时类成员
2.在任意方法内,如果使用当前类的成员变量或成员方法可以在其前面添加this ,增强程序的阅读性
3.this 可以作为一个类中,构造器相互调用的特殊格式

注意:
(1) 使用 this() 必须放在构造器的首行!
(2) 使用 this 调用本类中其他的构造器,保证至少有一个构造器是不用 this 的。(实际上就是不能出现构造器自己调用自己

你可能感兴趣的:(java学习,java,学习,python)