this的引入和概念

this引入

class Test{
	public static void main(String[] args) {
		Student stu = new Student();
		stu.setName("小东西");
		System.out.println(stu.getName());
	}
}
class Student{
	private String name;
	private int age;
	public void setName(String name){//命名应写成  name见名知意思,但写完之后,存取不到值,堆栈分析,变量使用就近原则
		name = name;
	}
	public String getName(){
		return name;
	}
	public void setAge(int age){
		age = age;
	}
	public int getAge(){
		return age;
	}
}

尝试使用this 解决问题

this介绍

  • this的概念:this指代当前对象,持有当前对象的地址

  • 2.如何判断this指代的是哪个对象
    官方:this所在的函数,正在被谁调用this就指代谁
    民间 :this当前被对象持有,this就指代谁,模板---->复印件

  • this理解 示意图
    在这里插入图片描述

  • 4.测试this持有当前对象地址

class Test{
	/*
		1.官方 :this所在的函数,正在被谁调用this就指代谁
		2.理解 :this表示的是当前对象,可看成this持有当前对象的地址值;
		3.民间 :this当前被哪个对象持有,this就指代谁,模板---->复印件【复印件中包含		  this,this指代当前复印件即对象】
	*/
	public static void main(String[] args) {
		/*this表示的是当前对象,可看成this持有当前对象的地址值; this存在于该对象复印件中,所以this指代当前对象*/
		Student stu1 = new Student();
		System.out.println("this所在函数stu1=" + stu1);
		stu1.eat();//1. this所在函数正在被谁调用this就指代谁: this指代stu

		//this指代当前对象,换了其他对象,this代表的就是其对象了
		Student stu2 = new Student();
		System.out.println("this所在函数stu2=" + stu2);
		stu2.eat();//1. this所在函数正在被谁调用this就指代谁: this指代stu
	}
}
class Student{
	void eat(){
		System.out.println("this所在函数this=" + this);
	}
}

在这里插入图片描述

  • this持有当前的对象地址 : this应该在类设计的是时候使用
  • this不能写在静态的方法中 : 无法从静态上下文中引用非静态 变量 this
    static类级别
    this对象级别

this使用场景

  • 解决局部变量和成员变量的二义性 — get set 方法中的应用[在get/set可以写this]
  • 作为返回值返回 : this持有对象地址,表示该类的一个对象即是一个数据
  • 作为参数传递
    本类中构造方法之间的相互调用

this总结

  • this用途:
    解决局部变量和成员变量的二义性–》注意 set/get方法 构造方法
    this作为参数传递,this作为返回值
    在本类之间 ,构造方法之间的相互调用 this()调用无参数的构造方法,this(…)可以添加参数,表示调用有参数的构造方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值