java-this关键字的特点

文章目录

  • 一.在类的方法中,使用this关键字代表的是调用此方法的对象的引用
  • 二.this可以看作是一个变量,他的值是当前对象的引用
  • 三.使用this可以处理方法中的成员变量和形参同名的问题
  • 四.当在方法内需要用到调用到该方法的对象时,就可以用this
  • 五.在类的构造方法中可以调用this([参数列表])来调用该类的指定构造方法

一.在类的方法中,使用this关键字代表的是调用此方法的对象的引用


class Student{
	private int age;
	private String name;
	private double score;
	
	Student(){	//java中,方法是可以重载的,函数名一样但是参数列表是不一样
		System.out.println("构造方法一被调用");
	}
	
	Student(int age, String name){
		System.out.println("构造方法二被调用");
	}
	
	public Student(int age, String name, double score) {
		super();
		this.age = age;
		this.name = name;
		this.score = score;
		System.out.println("构造方法三被调用");
	}
	void introduce(){
		System.out.println("name = " + name + ",age = " + age + ",score=" +score);
	}	
	void testThis1(){
		System.out.println(this.name);
	}
}
public class Demo2 {
	public static void main(String[] args) {
	Student stu1 = new Student(18, "TWH", 100);

	stu1.testThis1();	
	}
}

输出:

构造方法三被调用
TWH

由此可见,就是调用了此对象的一些引用,属性。

二.this可以看作是一个变量,他的值是当前对象的引用


class Student{
	private int age;
	private String name;
	private double score;
	
	Student(){	//java中,方法是可以重载的,函数名一样但是参数列表是不一样
		System.out.println("构造方法一被调用");
	}
	
	Student(int age, String name){
		System.out.println("构造方法二被调用");
	}
	
	public Student(int age, String name, double score) {
		super();
		this.age = age;
		this.name = name;
		this.score = score;
		System.out.println("构造方法三被调用");
	}
	void introduce(){
		System.out.println("name = " + name + ",age = " + age + ",score=" +score);
	}	
	void testThis1(){
		System.out.println(this.name);
	}
	void testThis2(){
		Student stutmp = null;
		stutmp = this;
		System.out.println(stutmp.name);
	}
}
public class Demo2 {
	public static void main(String[] args) {
	Student stu1 = new Student(18, "TWH", 100);

	stu1.testThis1();
	stu1.testThis2();
		
	}
}

输出结果:

构造方法三被调用
TWH
TWH

就是让另一个变量来充当this关键字。

三.使用this可以处理方法中的成员变量和形参同名的问题

主要解决构造方法中传参问题。

四.当在方法内需要用到调用到该方法的对象时,就可以用this

五.在类的构造方法中可以调用this([参数列表])来调用该类的指定构造方法

用this()调构造方法时,只用用一次this(),下面演示在构造方法中调构造方法。


class Student{
	private int age;
	private String name;
	private double score;
	
	Student(){	//java中,方法是可以重载的,函数名一样但是参数列表是不一样
		System.out.println("构造方法一被调用");
	}
	
	Student(int age, String name){
		System.out.println("构造方法二被调用");
	}
	
	public Student(int age, String name, double score) {
		this();
		
		this.age = age;
		this.name = name;
		this.score = score;
		System.out.println("构造方法三被调用");
	}
	void introduce(){
		System.out.println("name = " + name + ",age = " + age + ",score=" +score);
	}	
	void testThis1(){
		System.out.println(this.name);
	}
	void testThis2(){
		Student stutmp = null;
		stutmp = this;
		System.out.println(stutmp.name);
	}
}
public class Demo2 {
	public static void main(String[] args) {
	Student stu1 = new Student(18, "TWH", 100);

	stu1.testThis1();
	stu1.testThis2();
		
	}
}

输出结果:

构造方法一被调用
构造方法三被调用
TWH
TWH

你可能感兴趣的:(java)