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