0
点赞
收藏
分享

微信扫一扫

API接口安全运营研究

中间件小哥 2023-10-12 阅读 36

文章目录


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 调用本类中其他的构造器,保证至少有一个构造器是不用 this 的。(实际上就是不能出现构造器自己调用自己

举报

相关推荐

0 条评论