update on 2019-07-07

在Java核心技术一书中看到调用方法时this作为隐式参数传入的。

突然间许多问题都懂了

比如:方法的多态

父类变量指向子类对象的引用

对象变量指向的实际类型

虚拟机提取实际类型方法表

搜索对应方法签名(方法名称与参数类型)的类

调用方法的时候是子类覆写过的方法。

---------

1.this表示类中的属性

  如下我们的有参构造方法中。

 public class Person {
private String name;
private int age; public Person(String name, int age) {
//this调用本类属性进行赋值
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}

   

  如果我们把构造方法中的this去掉。

 public class Person {
private String name;
private int age; public Person(String name, int age) {
//去掉this,那么结果会怎么样呢?
name = name;
age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}

  这是构造方法中并没有给类的属性去赋值,所以Person中的属性依然是默认值。

2.使用this调用构造方法

 public class Person {
private String name;
private int age; public Person() {
} public Person(String name, int age) {
//使用this调用上面的无参构造方法
//构造方法在实例化对象时被自动调用,使用this须放在第一行
this();
this.name = name;
this.age = age;
}
}

3.this表示当前对象

 public class Person {
private String name;
private int age; public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getPersonInfo(){
return "调用方法的当前对象->"+this;
}
}

那个对象调用了类中的方法,则this就表示那个对象。

结尾:这是我的第一篇博客,很简单,却也很开心。搁置已久,想开始又不知从何写起。望君坚持!

                                                                        @Author: qiuling
                                                                        @Date: 2018/11/8 21:25

最新文章

  1. 【NLP】揭秘马尔可夫模型神秘面纱系列文章(一)
  2. Frequently Asked Questions - P-thresholds
  3. IE6和IE7中<a>标签宽高设置无效的问题
  4. Oracle中的rownum和rowid
  5. js array 数组删除元素
  6. html的3要素
  7. linux ls -l 详解
  8. PHPStorm&PHPstudy环境配置
  9. Java Service Wrapper
  10. Linux进程同步之记录锁(fcntl)
  11. 第一册:lesson 119.
  12. iOS 高级去水印,涂鸦去水印
  13. 用turtle库实现汉诺塔问题~~~~~
  14. GC ROOT
  15. angularjs学习第九天笔记(指令作用域【隔离作用域】研究)
  16. LODOP选择路径,保存写入word文件
  17. 网口扫盲二:Mac与Phy组成原理的简单分析(转)
  18. 如何完全卸载VS2010(亲自体验过) (转)
  19. 20145104张家明 《Java程序设计》第9周学习总结
  20. CSS之少用继承,多用组合

热门文章

  1. 使用TortoiseGit合并分支
  2. APScheduler的简单记录
  3. shell input value from console
  4. 使用Makefile编译Erlang
  5. java改动后运行无变化
  6. Requests使用
  7. iSkysoft iMedia Converter Deluxe Mac如何制作视频?视频格式转换工具制作动图的方法
  8. Axure 部件的交互样式
  9. shell变量,字符串,数组
  10. webpack 兼容低版本浏览器,转换ES6 ES7语法