JAVA——this 关键字

本文详细解析了Java中this关键字的使用场景,包括调用本类属性解决变量名称冲突、调用本类方法和构造方法,以及表示当前对象的概念。通过实例展示了this关键字在实际编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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();
	}
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值