Java中关于this关键字的理解

参考:Java从入门到精通 第五版 清华大学出版社
在提到这个关键字之前,要先看看关于类的一些基本概念:

1.成员对象和成员方法

  我们知道类是一种抽象的数据类型,是对某一类事物整体的描述。类是封装对象的属性行为的载体。而其中,属性是以成员变量的形式存在,对象的方法是以成员方法的形式存在。
先看看下面一段代码:

public class Book{
	private String name;           //定义 String 类型成员变量
	
	public String getName() {      //定义成员方法
		int id = 0;                //局部变量
		setName("java");           //调用该类中的其他方法
		return id + this.name;     
	}
	
	private void setName(String name) {       //定义成员方法
		this.name = name;          //将参数赋值给类中的成员变量
	}
	public Book getBook() {        //返回Book类引用
		return this;
	}
	
}

可以看到:

  1. 用关键字class来定义类Book,同时在Book类中定义了一个成员变量。
  2. 在Book类中定义了2个成员方法getName(),setName()。同时,在该成员方法中可以调用其他成员方法和类成员变量。同时,在该成员方法中也可以自定义一个变量,这个变量就局部变量。
  3. 权限修饰符作用是控制对类和类的成员变量以及成员方法的访问权限。这里有一个表:

引用自 :Java从入门到精通 第五版 清华大学出版社在这里插入图片描述
这里权限范围的大小从小到大排序为 private protected piblic ,也会在继承中方法的重写中用到

这里注意:当声明类是不使用上述的权限修饰符的时候,则这个类预设为包存取范围,即只有一个包中的类可以调用这个类的成员方法或成员变量。例如:下面两段代码等价,虽然成员方法的权限设置为public,但Java规定类的权限设定会约束成员的权限设定。

class AnyClass{
	public void doSting() {
		//.....
	}
}
//
class AnyClass{
	  void doSting() {
		//.....
	}
}
2.this关键字

现在来总结一下this关键字,还是看到上面的那一段代码:
在这里插入图片描述

  • 注意到,这里成员变量的名称和成员方法中的形参名是相同的为name,那么如何在类中去区分这两个变量呢,在Java中规定使用this关键字来代表本类对象的引用,如例子中this.name指的是成员变量,=号后面的则是形参。
  • 实际上,this就是对本类中一个对象的引用,当局部变量或者方法参数名称覆盖了成员变量名时,就会添加this加以区分。
  • 除此之外,this还可以作为方法的返回值,如最后一段代码,定义了getBook类的方法,return this 是对Book类的对象进行返回。
3 .类的构造器方法
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

通信仿真爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值