this 关键字用来表示当前对象本身,或当前类的一个实例,通过this可以调用对象的所有方法和属性。

例如:

public class Demo {
private int x = 10;
private int y = 15; public void sum(){
//通过this获取成员变量,this可以省略。
int z = this.x + this.y;
System.out.println("x+y = "+z);
} public static void main(String[] args) {
Demo demo = new Demo();
demo.sum();
}
}

运行结果:

使用this区分同名变量

public class Demo {
private String name;
private int age; public Demo(String name,int age){
//this不能省略,this.name 指的是成员变量, 等于后面的name 是传入参数的变量,this可以很好的区分两个变量名一样的情况。
this.name = name;
this.age = age;
}
public static void main(String[] args){
Demo demo = new Demo("微学院",3);
System.out.println(demo.name + "的年龄是" + demo.age);
}
}

运行结果:

this作为方法名来初始化对象

public class Demo {
private String name;
private int age; public Demo(){
/**
* 构造方法中调用另一个构造方法,调用动作必须置于最起始位置。
* 不能在构造方法之外调用构造方法。
* 一个构造方法只能调用一个构造方法。
*/
this("微学院",3);
} public Demo(String name,int age){
this.name = name;
this.age = age;
} public static void main(String[] args){
Demo demo = new Demo();
System.out.println(demo.name + "的年龄是" + demo.age);
}
}

运行结果:

this作为参数传递

class Person{
public void eat(Apple apple){
Apple peeled = apple.getPeeled();
System.out.println("Yummy");
}
}
class Peeler{
static Apple peel(Apple apple){
return apple;
}
}
class Apple{
Apple getPeeled(){
//传入this,就是传入Apple。
return Peeler.peel(this);
}
}
public class This{
public static void main(String args[]){
new Person().eat(new Apple());
}
}

this 用法就到这里。

参考:https://www.cnblogs.com/yefengyu/p/4821582.html

最新文章

  1. 【scikit-learn】scikit-learn的线性回归模型
  2. WordPress基础:订阅源rss的使用
  3. Java 导入Excel文件到数据库
  4. jshzoi
  5. IBM AppScan 安全扫描:加密会话(SSL)Cookie 中缺少 Secure 属性 处理办法 分类: 数据安全 2014-06-28 11:35 2805人阅读 评论(0) 收藏
  6. 百度地图API自定义地图
  7. 《GK101任意波发生器》升级固件发布(版本:1.0.2build198)
  8. jquery提示气泡
  9. Yahoo! Logo ASCII Animation in 462 bytes of C
  10. WWDC-UIKit 中协议与值类型编程实战
  11. word页面不对齐,如何解决?
  12. 微型 ORM 的第二篇 DapperLambda性能测试[Dapper比较篇]
  13. magento模块的建立
  14. java数据库编程之事务、视图、索引、备份、恢复
  15. undefined 与null的区别与差异
  16. [ZJOI2007]时态同步(dfs+贪心)
  17. mixpanel umeng talkingdata
  18. JS中的数学方法
  19. day 96 关于分页的使用
  20. 归并排序merge_sort

热门文章

  1. python:Asyncio模块处理“事件循环”中的异步进程和并发执行任务
  2. Python装饰器的使用
  3. php中static关键字的理解
  4. 有效的减少代码中太多的if、else?-策略模式
  5. 手把手教你优雅的编写第一个SpringMVC程序
  6. Python编译升级
  7. PHP安装扩展补充说明
  8. 【RN - 基础】之Image使用简介
  9. Docker harbor 安装和基础操作
  10. 在docker中加入加速器的方法