JAVA——this 关键字

this关键字的介绍

(一)this调用本类属性

· 通过this关键字可以明确的去访问一个类的成员变量,解决与局部变量名称冲突问题。
举例如下:

class Person2{
	//方法
	private String name;
	
	//构造方法
	//参数名(即局部变量)与属性名(即成员变量名)相同,
	//为了加以区分,属性名前加 this,用于访问属性变量
	public Person2(String name){
		this.name = name;
	}
	public String getName(){
		return name;
	}	
}

(二)this关键字调用本类方法

· this调用本类方法时的两种情况
1.调用普通方法:this.方法名称(参数)——可省略——最好不省略
2.调用构造方法:this(参数)
(1)this在本类中调用普通方法

this.方法名称(参数)——可省略——最好不省略
举例如下:

class Person2{
	//方法
	private String name;
	//构造方法
	//参数名(即局部变量)与属性名(即成员变量名)相同,
	//为了加以区分,属性名前加 this,用于访问属性变量
	public Person2(String name){
		this.name = name;
	}
	public String getName(){
		return name;
		//此处调用普通方法,但是一定要在本类中
		this.print();
	}	
	//普通方法
	public void print(){
		System.out.prinbtln("##33##");
	}
}

(2)this关键字在本类中调用构造方法

1. this调用构造方法的语句必须在构造方法首行,且只能出现一次;
2. 使用this调用构造方法时,请留有出口 ;
3. 只能在构造方法中使用this调用构造方法,不能在普通方法中调用;



· 形式:this.(参数)
举例如下:

class Person2{
	 //方法——private封装
	private String name;
	private int age;
	//构造方法
	public Person2(){
	}
	public Person2(String name){
		this();//调用本类无参构造方法
		this.name = name;
	}
	public Person2(String name,int age){
		this(name);//调用本类有参构造方法
		this.age = age;
	}
	//方法setter设置 和 getter获取
	public void setName(String name){
		this.name = name;//访问成员变量
	}
	public String getName(){
		return name;
	}
	public void setAge(int age){
		if(age < 0 || age >= 150){
			System.out.println("输入错误!");
		}
		else{
		this.age = age;//访问成员变量
		}
	}
	public int getAge(){
		return age;
	}
	//方法
	public void intriduce(){
		System.out.println("姓名:"+name+",年龄:"+age);
	}
}
public class Test3{
	public static void main(String[] args){
		Person2 sg1 = new Person2("kelly",21);
		Person2 sg2 = new Person2("张三");
		sg1.intriduce();
		sg2.intriduce();
	}
}

运行结果如下:
在这里插入图片描述

(三)this关键字表示当前对象

· 只要对象调用了本类中的方法,这个this就表示当前执行的对象 。

class Person2{
	 public void print(){
		 System.out.println("输出:"+this);
	 }
 }
public class Test3{
	public static void main(String[] args){
		Person2 sg1 = new Person2();
		System.out.println(sg1);
		sg1.print();//对象调用本类中的方法,则方法中的this就表示当前执行的对象sg1
		System.out.println("————————————");
		Person2 sg2 = new Person2();//对象调用本类中的方法,则方法中的this就表示当前执行的对象sg2
		System.out.println(sg2);
		sg2.print();
	}
}

运行结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/xmfjmcwf/article/details/83998123